[英]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.