内容脚本访问网页js

时间:2012-01-13 01:06:19

标签: javascript firefox firefox-addon firefox-addon-sdk

我使用在线插件构建器创建了一个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();

1 个答案:

答案 0 :(得分:1)

您将内容脚本注入页面(例如,通过page-mod包)并在内容脚本中调用unsafeWindow.foo()以从内容脚本调用函数foo()。有关详细信息,请参阅documentation。请务必阅读警告:您依靠网页功能以您期望的方式行事,但可能不会。特别是,如果函数返回了某些内容并且您想要处理该结果,则可能会无意中引入安全漏洞。