在小部件上运行内容脚本单击firefox扩展

时间:2013-04-07 16:22:54

标签: javascript firefox-addon

我刚刚完成了Chrome扩展程序,点击浏览器按钮即可添加内容脚本。 我正在寻找用firefox完成它的相同方法,我发现PageMod但它似乎无法在我的小部件中的onclick事件中工作。

有任何建议吗?

1 个答案:

答案 0 :(得分:1)

我猜你所谓的“浏览器按钮”就是Mozilla所谓的widget。激活page-mod不需要您点击任何内容,只需要“附加”(打开)匹配的网页。

要在单击窗口小部件后与页面内容(页面的DOM)进行交互,窗口小部件的onClick属性的值应该是无参数的匿名函数,其中变量设置为活动选项卡的attach事件:

var self=require("self");
var data = self.data;
var widget = require("widget");
var tabs = require("tabs");


var erase = widget.Widget({
 id: "magated",
 label: "click this widget",
 content: "<div>?</div>",
 contentScriptWhen: "start",
 contentScriptUrl: data.url("cs.js"),
 onClick:function () {
  worker = tabs.activeTab.attach({
    contentScriptWhen: "start",
    contentScriptFile: [data.url("cs.js")],
  });
  worker.port.emit("dothing", tabs.activeTab.url);
 },
});

在cs.js中可能会发现以下内容:

self.port.on("dothing", function (url) {
  var bigUrl = document.createElement("h1");
  bigUrl.textContent = url;
  document.body.insertBefore(bigUrl, document.body.firstElementChild);
});