2016-08-15 9 views
1

バックグラウンドスクリプトからalert()を呼び出すことはGoogleのChromeでは許可されていますが、Chrome拡張機能を移植するFirefox(WebExtensions)では許可されていません。バックグラウンドスクリプトからalert()を呼び出す回避策が必要

アラートダイアログを表示するには、回避策が必要です。私は警告ダイアログ以外のものを求めていません。

アラートコールが必要なときにコンテンツスクリプトがロードされないため、alert()を呼び出すためのメッセージをコンテンツスクリプトに送信するだけでは不十分です。

+0

var alertWindow = 'alert(message)'; 

などそのコード注入背景スクリプトを聞かせて実際の '' alert() 'ダイアログ以外の解決策は受け付けません。見た目にも気に入っているものでもありません。そうなら、あなたはSOLです。コンソール "alert()"に出力されるテキストはバックグラウンドウィンドウではサポートされていませんので、代わりにconsole.logを使用してください。 "明らかです。 'alert()'はバックグラウンドスクリプトではサポートされていません。さらに詳しい情報が必要な場合は、[Bug 1203394 - バックグラウンドスクリプトでalert()が動作しない](https://bugzilla.mozilla.org/show_bug.cgi?id=1203394)をチェックしてください。このコンソール出力には解決済みです結果として。 – Makyen

+0

明確にする: 'alert()'のように見え、動作するFirefoxとGoogle Chromeの両方で機能する代用品を受け入れるのか? – Makyen

+0

また、明らかにするには、 'alert()'を達成するためにコンテンツスクリプトを読み込むという解決策としては許されません。これは、既にロードされているコンテンツスクリプトにメッセージを送信することを意味するのではなく、実際にこの問題を処理するために具体的にロードすることです。これはあなたに受け入れられる解決策ではありません。 – Makyen

答えて

2

私の回避策は次のように文字列で、アラートコードを保存することです:あなたはそれはのように聞こえるこれを言葉で表現している方法を

browser.tabs.executeScript({code : alertWindow}); 
+0

このハックはうまくいきました、ありがとう! – Lunulata

+1

このタブは有効ではありません。 「about:」ページ、新しいタブおよび他の同様の状況があります。これは、エラーメッセージを表示する必要がある場所と、問題を回避する方法を示しています。他のアイデア? – gregko

関連する問題