ホームページ >ウェブフロントエンド >jsチュートリアル >クリップボードAPIを使用してJavaScriptでカット、コピー、貼り付け

クリップボードAPIを使用してJavaScriptでカット、コピー、貼り付け

Jennifer Aniston
Jennifer Anistonオリジナル
2025-02-10 09:25:37612ブラウズ

JavaScriptのクリップボードAPI:クリップボード管理に対する最新のアプローチ

非同期クリップボードAPIは、JavaScriptのオペレーティングシステムのクリップボードにアクセスするための時代遅れのdocument.execCommand()方法よりも大幅な改善を提供します。 document.execCommand()はパフォーマンスの問題、一貫性のないブラウザのサポート、許可の矛盾に苦しんでいましたが、Clipboard APIはより効率的で堅牢な代替品を提供します。 すべての機能がまだすべてのブラウザで普遍的にサポートされているわけではありませんが、その使いやすさと改善されたセキュリティにより、それを好む方法にします。

Cut, Copy and Paste in JavaScript with the Clipboard API

クリップボードAPIの重要な利点:

  • 非同期操作:document.execCommand()ユーザーエクスペリエンスの拡張:
  • ユーザーフレンドリーなカット、コピー、貼り付けインターフェイスの作成を促進します。特にタッチスクリーンデバイスやキーボードショートカットに精通していないユーザーにとって有益です。
  • コンテンツの変更:クリップボードアクション後のコンテンツ操作を可能にします(たとえば、フォーマットの追加または削除)。
  • なぜクリップボードにアクセスするのか? 多くのアプリケーションは、プログラマティッククリップボードアクセスの恩恵を受けています。 開発者はキーボードショートカット(CTRL/CMD C、X、V)に精通していますが、多くのユーザーはそうではありません。視覚的なカット/コピー/貼り付けコントロールを提供すると、アクセシビリティが向上します。 さらに、フォーマット調整などのクリップボード後アクションが簡素化されます
セキュリティ上の考慮事項:

プログラマティッククリップボードアクセスは、セキュリティリスクを示します。 これらを緩和するには:

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>
    機能検出:
  • を使用してAPIの可用性を確認します
ただし、これは完全な機能サポートを保証するものではありません。 ブラウザのサポートが異なるため、徹底的なチェックは非常に重要です。

Cut, Copy and Paste in JavaScript with the Clipboard API

テキストコピーと貼り付け:

コアテキスト操作は簡単です:

エラー処理とサポート検出には、追加のコードが必要です。 (githubの例のコードを参照)。
<code class="language-javascript">if (navigator.clipboard) {
  console.log('Clipboard API available');
}</code>

データコピーと貼り付け:

テキストを超えて、read()およびwrite()メソッドは、画像などのさまざまなデータ型を処理します。 コピーするには、ClipboardItemblobデータ(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):

  • クリップボードAPIは何ですか?プログラマティッククリップボードインタラクションのためのJavaScriptインターフェイス(コピー/ペースト)。
  • それにアクセスする方法
  • 経由で navigator.clipboardメソッドが提供されていますか?
  • ユーザーインタラクションが必要ですか?はい、セキュリティのため。 writeText()readText()同期または非同期?write()非同期、返還の約束。read()
  • セキュリティ上の考慮事項?httpsが必要、iframesの許可制限、ユーザーの相互作用が必要です。
  • Originの使用法?
  • には、追加のアクセス許可と考慮事項が必要です

以上がクリップボードAPIを使用してJavaScriptでカット、コピー、貼り付けの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。