簡體   English   中英

從chrome到非特權代碼的Firefox插件SDK消息

[英]Firefox Addon SDK message from chrome to unprivileged code

我正在嘗試在Firefox插件工作程序腳本和網頁的javascript之間傳遞消息。 我發現了這一點 ,它解釋了如何將消息發送到腳本並獲得回復,但是我只想將消息從chrome發送到非特權代碼。 我已經嘗試使用以下兩種方法。

我是從附加到面板的工作人員發送的,我想用一些注入到頁面DOM中的JavaScript接收消息。

發送

    var element = document.createElement("MyExtensionDataElement");
    element.setAttribute('detail', "hi");
    document.documentElement.appendChild(element);
    console.log("created the event", element);

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

接受

    document.addEventListener("MyExtensionEvent", function(e) {
        myExtension.myListener(e);
    }, false, true);

並通過一個簡單的CustomEvent

發送

var e = new CustomEvent("event",{detail:"string here"});
window.dispatchEvent(e);

接收

    window.addEventListener("event",function(e){
        console.log(e.detail);
    });

第一個發送消息,但沒有收到,第二個甚至都未能創建CustomEvent。 對於這個問題,我們將不勝感激,如果問題是業余的,也請您道歉。 我是Firefox插件開發的新手。

您的接收錯誤,您需要使用add第四個參數並將其設置為嘗試:

所以

window.addEventListener("event",function(e){
    console.log(e.detail);
});

前往

window.addEventListener("event",function(e){
    console.log(e.detail);
}, false, true);

請參閱本主題- 方法的initCustomEvent傳遞數據不再起作用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM