ホームページ >ウェブフロントエンド >jsチュートリアル >クリップボードAPIを使用してJavaScriptでカット、コピー、貼り付け
非同期クリップボードAPIは、JavaScriptのオペレーティングシステムのクリップボードにアクセスするための時代遅れのdocument.execCommand()
方法よりも大幅な改善を提供します。 document.execCommand()
はパフォーマンスの問題、一貫性のないブラウザのサポート、許可の矛盾に苦しんでいましたが、Clipboard APIはより効率的で堅牢な代替品を提供します。 すべての機能がまだすべてのブラウザで普遍的にサポートされているわけではありませんが、その使いやすさと改善されたセキュリティにより、それを好む方法にします。
クリップボードAPIの重要な利点:
document.execCommand()
ユーザーエクスペリエンスの拡張:プログラマティッククリップボードアクセスは、セキュリティリスクを示します。 これらを緩和するには:
https要件:クリップボードAPIは、httpsを介して提供されるページでのみ使用可能です(localhostも許可されています)。
iframe権限:iframe内で使用する場合、親ページは
および/またはclipboard-read
clipboard-write
<code class="language-html"><iframe src="childpage.html" allow="clipboard-read; clipboard-write"></iframe></code>
コアテキスト操作は簡単です:
エラー処理とサポート検出には、追加のコードが必要です。 (githubの例のコードを参照)。
<code class="language-javascript">if (navigator.clipboard) { console.log('Clipboard API available'); }</code>
データコピーと貼り付け:
テキストを超えて、read()
およびwrite()
メソッドは、画像などのさまざまなデータ型を処理します。 コピーするには、ClipboardItem
をblob
データ(fetch()
またはcanvas.toBlob()
から)で使用することが含まれます。
<code class="language-html"><iframe src="childpage.html" allow="clipboard-read; clipboard-write"></iframe></code>貼り付けはより複雑で、目的の形式を見つけるために
オブジェクトを介して反復を必要とします。 (githubの例のコードを参照)。ClipboardItem
イベントを切り取り、コピーし、貼り付けます:
、cut
、およびcopy
イベントは、ユーザークリップボードアクションでトリガーされます。 イベントハンドラーは、これらを傍受して、paste
オブジェクトを使用してデータを変更できます。 たとえば、大文字でコピーしたテキスト:clipboardData
<code class="language-javascript">if (navigator.clipboard) { console.log('Clipboard API available'); }</code>(ペーストイベントハンドラーについては、githubの例のコードを参照)。
結論:
クリップボードAPIは、JavaScriptのクリップボード相互作用のための最新の堅牢なソリューションです。 新しい一方で、その幅広いサポートと改善されたセキュリティにより、推奨されるアプローチになり、進歩的な強化として最もよく実装されています。 提供されたコードの例は、しっかりとした出発点を提供します。
よくある質問(FAQ):
navigator.clipboard
メソッドが提供されていますか?
writeText()
readText()
同期または非同期?write()
非同期、返還の約束。read()
以上がクリップボードAPIを使用してJavaScriptでカット、コピー、貼り付けの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。