簡體   English   中英

在附加腳本中的內容腳本中偵聽消息

[英]Listen for message in content script from addon code

附加碼,
創建一個Panel ,由confirmPanel.html填充
偵聽來自內容腳本的getPreferences消息,
構建一個JSON字符串,然后嘗試發送回內容腳本..

var confirmPanel = require("sdk/panel").Panel({
    width: 450,
    height: 350,
    contentURL: Data.get("confirmPanel.html"),
});

confirmPanel.port.on("getPreferences", function() {

    var prefs = '{'
        +'"fileName":"HelloWorld.txt", '
        +'"pathToFile":"/home/rob/", '
        +'}';

    confirmPanel.port.emit("prefs", prefs);
})

confirmPanel.html指定Panel內容..

<html>
    <head>
        <script src="confirmPanel.js"></script>
    </head>
    <body onload="Addon_Panel.getPreferences()">
    </body>
</html>

confirmPanel.js是為內容腳本confirmPanel.html
等待body加載,然后將getPreferences消息發送到附加代碼。
然后等待插件代碼中的prefs消息將JSON字符串記錄到控制台
但是console.log(prefs); 永遠不會執行?

var Addon_Panel = {

    getPreferences: function() {
        addon.port.emit("getPreferences", '');
    }
};

addon.port.on("prefs", function (prefs) {
    console.log(prefs);
});

將內容腳本附加為文件,而不是將其包含在html中
main.js

var confirmPanel = require("sdk/panel").Panel({
    width: 450,
    height: 350,
    contentURL: Data.get("html/confirmPanel.html"),
    contentScriptFile: [Data.get("js/confirmPanel.js")]
});

confirmPanel.port.emit("prefs", prefs);

在內容腳本文件中..

self.port.on("prefs", function (prefs) {
    console.log("in content script");
});

暫無
暫無

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

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