さようなら、Document.execCommand()🚭
5568 ワード
生成したuuidまたはリンクをクリップボードに保存する機能を開発する過程で、プロジェクトの進行中にリンクを共有し、招待する必要があります.
🔥Document.execCommand()
選択したコンテンツをコピーする場合は、まずすべてのブラウザでサポートされているexecCommand APIを使用します.
ドキュメントが編集可能な場合は、execCommand()メソッドを使用して、execCommandを呼び出してcopyコマンドを使用します.
const onCopy = (e: MouseEvent<HTMLButtonElement>) => {
e.preventDefault();
const content = uuid.current;
//uuid => ref로 받아온 inputBox의 current
if (content) {
content.select();
document.execCommand("copy")
}
};
論理はselect()メソッドで選択した内容を指定します.このメソッドはinputなどのフォーム別名にのみ適用されます.(uuid.current.valueはstring typeなのでエラー)execCommandのcopyメソッドは、選択した領域を範囲としてクリップボードに正常に保存します.
それ以外に、コードを異なるブラウザまたはその他の要因に変更する必要がある場合があります(たとえば、Safariブラウザでコードを使用するにはfocusメソッドが必要です).
問題は...
上記の機能はWeb標準から削除され、予め設定されています...
✅Clipboard API
要するに、互換性がないブラウザもありますが、公式ドキュメントではexecCommandではなく、Clipboard APIを使用することをお勧めします.
navigator.clipboard
navigator.クリップボードで使用するさまざまな方法で読み書き操作を開始します.(read、readText、write、writeTextなど…)writeText
メソッドでテキスト内容をクリップボードに保存します.ここに書いたテキストのようです.
以前の
document.execCommand
は、キーボードを使用してコピーおよび貼り付けを行うのと同様に、フォーム要素の選択内容をクリップボードにコピーおよび保存していました.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()...Document.execCommand()
navigator.clipboard
Reference
この問題について(さようなら、Document.execCommand()🚭), 我々は、より多くの情報をここで見つけました https://velog.io/@woo1031/잘가요-Document.execCommandテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol