質問: 'dummy'; document.execCommand('copy'); document.addEventListener('copy', e => { e.preventDefault(); e.clipboardData.setData('text/plain', blogLink); }); ``` 調べたところ、Firefoxでも`document.execCommand('copy');`や、`e.clipboardData.setData`はあるようなのですが、動作しません。 デバッグしてもエラーが出ません。 Firefoxの拡張機能上で、クリップボードへのテキストのコピーはどのようにしたらいいでしょうか? ### 以下追加 browserActionで動かそうとしています。 デバッグしていると、 `document.execCommand('copy')`の行まではいっていますが、copyイベントが発生していないような感じです。 ### 更に追加 Windows 10のFirefoxでは動いてました。macOSのFirefoxで動きません。 ### 5/5追加 確認した環境は次のとおりです。 macOS 10.12.6 Firefox 59.0.2 document.execCommand('copy'); を実行するとtrueが返ってきます。 また、 のようなアドオンでないものはコピーできます。 他のアドオンでもcopyできませんでした。
回答: すみません回答ではないです。 を見てみると > > copy > > 現在の選択範囲をクリップボードにコピーします。この動作が有効になる条件は、ブラウザによって様々であり、時の経過により発展する可能性があります。このコマンドが使用可能かどうかは、ブラウザ実装状況のセクションで確認してください。 > > > および > > [1] Firefox 41 より前のバージョンでは、クリップボード機能を user.js 設定ファイルで有効にする必要があります。詳しい情報は、A brief guide to Mozilla preferences を参照してください。コマンドがサポートされていないか有効な場合、execCommand は false を返す代わりに例外を発生させます。Firefox 41 以降では、ウィンドウ (semi-trusted script) をポップアップできるどのイベントハンドラでも、クリップボードがデフォルトで有効です。 > > > および > > CodePen に 使用例 があります。 > > > といった記載がありますね。 例えば上記の情報との矛盾点はあるのでしょうか?少なくとも、 * FireFoxのどのバージョンで確認したのか * 上の「使用例」のページにはどう表示されてるか * execCommandの結果はtrue/false/exceptionのいずれだったか こうした点を確認し、質問にも明記する必要があると思います。無用な混乱を避ける意味で。