Javascript Firefox附加脚本执行多次

Javascript Firefox附加脚本执行多次,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我想创建一个简单的附加组件来编辑某个页面上的iframe 我读了,发现了一个解释如何与页面交互的示例,下面是index.js: 下面是data/main.js,contentScriptFile: window.__cw_fullscreen_started = false; if (!__cw_fullscreen_started) { console.log('started!'); __cw_fullscreen_started = true; } 上一个教程有一个示例

我想创建一个简单的附加组件来编辑某个页面上的iframe

我读了,发现了一个解释如何与页面交互的示例,下面是index.js:

下面是data/main.js,contentScriptFile:

window.__cw_fullscreen_started = false;

if (!__cw_fullscreen_started) {
    console.log('started!');
    __cw_fullscreen_started = true;
}
上一个教程有一个示例,演示了如何使用pageMod,如下所示:

var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "*.org",
  contentScript: 'document.body.innerHTML = ' +
                 ' "<h1>Page matches ruleset</h1>";'
});
var pageMod=require(“sdk/page mod”);
pageMod.pageMod({
包括:“*.org”,
contentScript:'document.body.innerHTML='0+
““页面匹配规则集”;”
});
这里一切都很清楚:当我打开某个.org网站时,脚本将页面内容替换为
页面匹配规则集
。似乎document.body链接到属于脚本执行所在页面的文档正文

但是当我执行
jpm run
并访问main.js脚本应该执行的页面时,我看到“started!”已记录多次

我再次浏览了MDN的所有教程,但我不知道为什么会发生这种情况

所以问题是:为什么脚本会执行这么多次

PS:在回答一个家伙的问题时,他说“对于从example.com加载的每个HTML文档,内容脚本将只运行一次”,并说logging location.href将消除混淆,但对我来说,
console.log(location.href,window.self==window.top)
多次注销“www.example.com false”,因此,这种混乱并没有消除

var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "*.org",
  contentScript: 'document.body.innerHTML = ' +
                 ' "<h1>Page matches ruleset</h1>";'
});