1

我创建了一个插件,它在 Firefox 加载时拍摄一个新选项卡,并在新选项卡的 DOM 上显示一条消息。但每次我点击新标签按钮时,它都会显示消息。我想在第一个新标签之后阻止事件..我的意思是我们之后手动单击的新标签不应该显示任何“hello world”消息?有可能吗..请帮忙..如果您需要更多信息,请告诉我..提前谢谢..以下是我使用的代码...

var tabs = require("sdk/tabs");
tabs.open("about:blank");

tabs.on('activate', function(tab) {
var worker = tab.attach({
contentScript: 'self.port.emit("html", document.body.innerHTML = "Hello World");' // contentScript sending message to add-on script
  });
 worker.port.on("html", function(message) {   //recieving message from  contentSCript
  console.log(message)
     })
 });
4

1 回答 1

0

这是一个很酷的问题。因为如果您使用 DOM Inspector,您可以查看对象上的事件侦听器,然后您可以删除它们。就像在这个屏幕截图中一样 - http://i.imgur.com/iKq6Qmh.png

我确定他们使用这些 XPCOM 组件 - 在 dxr.mozilla.org(firefoxes nightly 代码库)上进行挖掘以验证:

于 2015-12-20T12:56:34.533 回答