2014-02-14 78 views
0

我有一個XUL擴展不同的文檔對象,也許這就是爲什麼下面不工作:無法調用從頁面的Firefox擴展功能的JavaScript

在我的網頁的javascript:

var evt = document.createEvent("Events"); 
evt.initEvent("JSON_UPDATE_EVENT", true, false); 
document.dispatchEvent(evt); 

在延長,main.js文件:

document.addEventListener("JSON_UPDATE_EVENT", alert("hello"), false, true); 

我甚至嘗試嘗試:

Application.activeWindow.activeTab.document.addEventListener("JSON_UPDATE_EVENT", alert("hello"), false, true); 

在這兩種情況下的警報()被調用,只有當分機再次起動,但從來沒有對事件。網頁和擴展中的文檔是指不同的對象,這可能是其原因。

在main.js文件

回答

1

做到這一點:

var chromeWindow = Services.wm.getMostRecentWindow('navigator:browser'); 
function rawr() { 
chromeWindow.alert("hello") 
} 
chromeWindow.gBrowser.addEventListener("JSON_UPDATE_EVENT", rawr, false, true); 

與標籤每個窗口都有自己的gBrowser。

,如果你想要將它添加到當前打開的所有窗口,並打開這裏看到這個模板的所有將來的Windows: https://gist.github.com/Noitidart/8673632

使用的模板,只是內部addDiv和removeDiv編輯

+0

由於一噸!我嘗試過所有的東西,包括postmessage,chrome消息等,但沒有任何工作,但你的解決方案開箱即用。 –

+0

歡迎bro :-) – Noitidart