我使用在线插件构建器创建了一个firefox插件。如何在插件中使用网页上的现有功能?这个站点不属于我,所以我无法绑定事件监听器,以便从我的插件向它发送一个事件。
更新:现在我有了这段代码,但它不起作用:
main.js
var widgets = require("widget");
var tabs = require("tabs");
var data = require("self").data;
var widget = widgets.Widget({
id: "transfer",
label: "Transfer",
content: "Transfer",
width: 100,
onClick: function() {
tabs.activeTab.attach({
// native implementation of window.confirm will be used
contentScriptFile: data.url("new.js")
});
}
});
new.js:
function foo()
{
call(); // function in webpage
}
unsafeWindow.foo();
答案 0 :(得分:1)
您将内容脚本注入页面(例如,通过page-mod
包)并在内容脚本中调用unsafeWindow.foo()
以从内容脚本调用函数foo()
。有关详细信息,请参阅documentation。请务必阅读警告:您依靠网页功能以您期望的方式行事,但可能不会。特别是,如果函数返回了某些内容并且您想要处理该结果,则可能会无意中引入安全漏洞。