Javascript Firefox附加脚本执行多次
我想创建一个简单的附加组件来编辑某个页面上的iframe 我读了,发现了一个解释如何与页面交互的示例,下面是index.js: 下面是data/main.js,contentScriptFile: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; } 上一个教程有一个示例
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>";'
});