์๊ฐ์ Document.execCommand()๐ญ
ํ๋ก์ ํธ ์งํ ์ค ๋งํฌ๋ฅผ ๊ณต์ ํ์ฌ ์ด๋ํ๊ธฐ ๊ธฐ๋ฅ์ด ์๊ตฌ๋์ด ์์ฑ๋ uuid๋ ๋งํฌ๋ฅผ ํด๋ฆฝ๋ณด๋์ ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๊ณผ์ ์ค ์ฐพ์๋ณด๊ฒ ๋์๋ค.
๐ฅDocument.execCommand()
์ ํ ์์ญ์ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ ์ค ์ฐ์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ง์ ๊ฐ๋ฅํ execCommand API๋ฅผ ์ฌ์ฉํฉ๋๋ค.
document๊ฐ designmode, ์ฆ ํธ์ง ๊ฐ๋ฅํ ์ํ๊ฐ ๋๋ฉด exeCommand()๋งค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ ์ฐ๋ฆฐ execCommand๋ฅผ ํธ์ถ ํ copy ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
const onCopy = (e: MouseEvent<HTMLButtonElement>) => {
e.preventDefault();
const content = uuid.current;
//uuid => ref๋ก ๋ฐ์์จ inputBox์ current
if (content) {
content.select();
document.execCommand("copy")
}
};
๋ก์ง์ input๊ฐ์ form ์๋ฆฌ๋จผํธ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ select()๋ฉ์๋๋ฅผ ํตํด ์ ํ ์์ญ์ ์ง์ ํด์ค๋๋ค. (uuid.current.value๋ string type์ด๊ธฐ ๋๋ฌธ์ error๊ฐ ๋ฐ์ํ๋ค)
select๋ก ์ ํํ ์์ญ์ ๋ฒ์๋ก execCommand์ copy๋ฉ์๋๊ฐ ์๋ํ๋ฉฐ ํด๋ฆฝ๋ณด๋์ ์ ์์ ์ผ๋ก ์ ์ฅ์ด ๋ฉ๋๋ค.
์ด๊ฑฐ ๋ง๊ณ ๋ ๋ธ๋ผ์ฐ์ ๋ ๋ค๋ฅธ ์์ธ์ผ๋ก ๋ค๋ฅด๊ฒ ์ฝ๋๋ฅผ ๋ฐ๊ฟ์ผ ํ ์ ์์ต๋๋ค(์๋ก ์ฌํ๋ฆฌ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ focus๋งค์๋๋ฅผ ๊ฑฐ์ณ์ผํจ)
๋ฌธ์ ๋...
์ ๊ธฐ๋ฅ์ด ์น ํ์ค์์ ์ ๊ฑฐ๋์ด Deprecated ๋์๋ค...
โ Clipboard API
์๋ฌดํผ ์์ง ํธํ์ด ์๋๋ ๋ช๋ช ๋ธ๋ผ์ฐ์ ๊ฐ ์์ง๋ง ๊ณต์๋ฌธ์์์๋ execCommand๋ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ ๋์ฒดํ์ฌ Clipboard API ์ฌ์ฉ์ ๊ถ์ฅํ๊ณ ์๋ค.
navigator.clipboard
navigator.clipboard์์ ์ฌ์ฉ๋๋ ๋ณ๋์ ๋ฉ์๋๋ฅผ ํตํด ์ฝ๊ณ ์ฐ๊ธฐ๋ฅผ ์๋์ํจ๋ค.(read,readText,write,writeText ๋ฑ๋ฑ...)
์ฐ๋ฆฌ๋ writeText
๋ฉ์๋๋ฅผ ํตํด ํ
์คํธ ๋ด์ฉ์ ํด๋ฆฝ๋ณด๋์ ์ ์ฅํ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ํ ์คํธ๋ผ๊ณ ์ฐ์ฌ์๋ค์ํผ
์ด์ ์ document.execCommand
๋ form element์ ์ ํ์์ญ์ ๋ณต์ฌํ์ฌ ํด๋ฆฝ๋ณด๋์ ์ ์ฅํ๋, ๋ง์น ํค๋ณด๋๋ก ๋ณต์ฌ, ๋ถ์ฌ๋ฃ๊ธฐ ์์
๊ณผ ์ ์ฌํ๋ค๋ฉด
navigator.clipboard.writeText
๋ ํ
์คํธ ๋ด์ฉ์ ์ฝ๊ณ , ์ฐ๋ ์์
์ผ๋ก ๋ณด๋ฉด ๋ ๊ฑฐ ๊ฐ๋ค.
const onCopy = (e: MouseEvent<HTMLButtonElement>) => {
e.preventDefault();
const content = uuid.current;
if (content) {
navigator.clipboard.writeText(content.value).then(() => {
alert('์ฝ๋ ๋ณต์ฌ');
});
}
};
์๊ฐ์ Document.execCommand()...
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(์๊ฐ์ Document.execCommand()๐ญ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@woo1031/์๊ฐ์-Document.execCommand์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค