2017-08-10 2 views
0

私はChrome拡張機能をFirefoxに移植します。クリップボードに貼り付け機能があります。しかし、私はまだFirefoxでそれを行うことと運がなかった。私のバックグラウンドスクリプトでやろうとしていることは次のとおりです。Firefox WebExtensionの背景スクリプトからテキストをクリップボードにコピー

const input = document.createElement('textarea'); 
input.style.position = 'fixed'; 
input.style.opacity = 0; 
input.value = text; 
document.body.appendChild(input); 
input.select(); 
document.execCommand('copy'); 
logger(text); 
document.body.removeChild(input); 

これはChromeでうまくいきます。私はマニフェストにclipboardWrite権限を持っています。なぜFirefoxで動作しないのか?

+0

トピックになる質問を編集してください:問題を複製する[mcve]を含めてください。 Chrome拡張機能やFirefox WebExtensionsの場合は、* manifest.json *や背景/コンテンツ/ポップアップスクリプト/ HTMLの一部を含むことがほとんどです。 (1)望ましい動作、(2)特定の問題またはエラー、および(3)それを再現するために必要な最短のコードを含める必要があります。質問自体に*。また、[ここで私はどのような話題を聞くことができますか?](http://stackoverflow.com/help/on-topic)、[ask]を参照してください。 – Makyen

答えて

1

これをバックグラウンドスクリプトから実行しようとしていますが、これは動作しません。 MDNのページ:「Interact with the clipboard」「Browser-specific considerations」では、Firefoxのために、こう述べています。

あなたは、すべての実行コンテキストでこの背景ページを除くのようにクリップボードに書き込むことができます。 Firefoxでは、テキストを選択したり、入力フィールドをバックグラウンドページにフォーカスすることができないため、バックグラウンドページからクリップボードに書き込むことはできません。

クリップボードに書き込むには、他のコンテキストで作業する必要があります。たとえば、コンテンツスクリプトを挿入したり、拡張機能のページにタブまたはウィンドウを開いたりすることができます。どのように選択するかは、あなたが既にあなたの内線(例えばtabs)のために持っている追加の権限、現在開いているタブ(スクリプトを挿入できるタブが開いていること) (例えば、アクティブ化していないタブを短く開くと、ユーザに知覚されるかもしれないし、そうでないかもしれない)。

+0

ヒントのために大きな感謝とええコンテンツスクリプトでうまくいきました。再度、感謝します – Achayan

関連する問題