我刚刚完成了一个 chrome 扩展,它在单击浏览器按钮时添加了一个内容脚本。我正在寻找一种与 Firefox 相同的方法来完成它,我找到了 PageMod,但它似乎在我的小部件的 onclick 事件中不起作用。
有什么建议吗?
我刚刚完成了一个 chrome 扩展,它在单击浏览器按钮时添加了一个内容脚本。我正在寻找一种与 Firefox 相同的方法来完成它,我找到了 PageMod,但它似乎在我的小部件的 onclick 事件中不起作用。
有什么建议吗?
我猜你所说的“浏览器按钮”就是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);
});