0

我刚刚完成了一个 chrome 扩展,它在单击浏览器按钮时添加了一个内容脚本。我正在寻找一种与 Firefox 相同的方法来完成它,我找到了 PageMod,但它似乎在我的小部件的 onclick 事件中不起作用。

有什么建议吗?

4

1 回答 1

1

我猜你所说的“浏览器按钮”就是Mozilla所说的小部件。激活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);
});
于 2013-04-08T03:39:27.973 回答