我想从内容脚本运行插件函数 [main.js]。我阅读了 firefox 文档,但它对我不起作用。这是关于脚本之间通信的官方文档 https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/using_port
这是我的 main.js 代码
var tabs = require("sdk/tabs");
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "http://mydomain/x.html",
contentScriptFile: data.url("listen.js")
});
self.port.on("myAddonMessage", function(myAddonMessagePayload) {
console.log("working");
});
这是我的 listen.js 内容脚本
var myContentScriptMessagePayload="hi";
self.port.emit("myContentScriptMessage", myContentScriptMessagePayload);
实际上我期待 console.log("working");这个输出。但它不起作用。有人可以帮助我吗?我在这里真的很困惑。我实际上想从 listen.js 调用 main.js 函数。
最佳答案
main.js
没有 self.port
,content-scripts 有。在 main.js
中,您需要将端口与启动内容脚本的任何内容一起使用。例如。 PageMod
documentation还有更多。
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "http://mydomain/x.html",
contentScriptFile: data.url("listen.js"),
onAttach: function(worker) {
worker.port.on("myAddonMessage", function(myAddonMessagePayload) {
console.log("working");
});
}
});
关于javascript - Firefox 扩展从内容脚本调用插件功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24585417/