JavaScriptでのクリップボードへのコピー方法


  1. execCommandを使用する方法:

    function copyToClipboard(text) {
    var dummy = document.createElement("textarea");
    document.body.appendChild(dummy);
    dummy.value = text;
    dummy.select();
    document.execCommand("copy");
    document.body.removeChild(dummy);
    }

    この方法では、テキストを一時的にテキストエリアに設定し、選択してコピー操作を実行します。

  2. Clipboard APIを使用する方法 (モダンな方法):

    function copyToClipboard(text) {
    navigator.clipboard.writeText(text)
    .then(function() {
      console.log("テキストがクリップボードにコピーされました");
    })
    .catch(function(err) {
      console.error("クリップボードへのコピーに失敗しました:", err);
    });
    }

    この方法では、navigator.clipboard.writeText()関数を使用してテキストをクリップボードにコピーします。この方法は最新のWebブラウザでサポートされています。

  3. ライブラリを使用する方法: さまざまなJavaScriptライブラリがクリップボードへのコピーを簡単に実現するために提供されています。例えば、"clipboard.js"というライブラリを使用する場合は、以下のようにコードを記述できます:

    <button class="btn" data-clipboard-text="コピーするテキスト">コピー</button>
    <script src="clipboard.min.js"></script>
    <script>
    var clipboard = new ClipboardJS('.btn');
    clipboard.on('success', function(e) {
    console.log("テキストがクリップボードにコピーされました");
    e.clearSelection();
    });
    clipboard.on('error', function(e) {
    console.error("クリップボードへのコピーに失敗しました:", e.action);
    });
    </script>

    この方法では、"clipboard.js"ライブラリを使用して、特定の要素をクリックするとテキストがクリップボードにコピーされるように設定しています。

これらはいくつかの一般的な方法ですが、さまざまな状況に応じて適切な方法を選択することが重要です。また、ブラウザの互換性にも注意してください。