2016-08-15 87 views
1

在Google Chrome中允許從後臺腳本調用alert(),但不允許在我將Chrome擴展移植到的Firefox(WebExtensions)中調用該腳本。需要從後臺腳本中調用alert()的解決方法

所以,我需要一個解決方法來獲得一個警告對話框。除了警報對話框外,我不要求任何其他內容。

向內容腳本發送消息以調用alert()將不足以滿足需要警報調用時無法加載內容腳本。

+0

您已經措辭方式這個聽起來除了** actual **'alert()'對話框之外,您將不會接受任何解決方案,甚至不會看起來和感覺如此。如果是這樣,那麼你就是SOL。在後臺窗口中不支持在控制檯「alert()中輸出的文本;請改用console.log」。清楚了。 'alert()'在後臺腳本中不受支持。如果你想了解更多的信息,你可以查看[Bug 1203394 - alert()在後臺腳本中不起作用](https://bugzilla.mozilla.org/show_bug.cgi?id=1203394)作爲結果。 – Makyen

+0

要清楚:你會接受一個在Firefox和Google Chrome中都可以使用的替代品嗎? – Makyen

+0

另外要明確一點:作爲一個解決方案,加載內容腳本來完成'alert()'是不可接受的。這並不是說將消息發送到已經加載的內容腳本,而是實際加載一個來處理這個問題。這不是一個可以接受的解決方案,對嗎? – Makyen

回答

2

我的解決方法是保存報警代碼在這樣的字符串:

var alertWindow = 'alert(message)'; 

,讓後臺腳本注入代碼,如:

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

這個黑客工作,謝謝! – Lunulata

+1

這種黑客行爲不起作用,當活動標籤是例如一個「關於:」頁面,新標籤和其他類似的情況,這正是我需要顯示錯誤信息和建議如何解決問題的地方。任何其他想法? – gregko