Firefox addon 在Firefox插件生成器中使用警报
我正在尝试使用编写我的第一个Firefox扩展。我不明白为什么我的代码似乎根本没有运行,因为两个Firefox addon 在Firefox插件生成器中使用警报,firefox-addon,Firefox Addon,我正在尝试使用编写我的第一个Firefox扩展。我不明白为什么我的代码似乎根本没有运行,因为两个警报都没有弹出。为什么不发出警报(“主”)创建弹出窗口 main.js alert("Main"); var data = require("sdk/self").data; var pageMod = require("sdk/page-mod"); pageMod.PageMod({ include: "*", contentScriptFile: data.url("noredirect
警报都没有弹出。为什么不发出警报(“主”)代码>创建弹出窗口
main.js
alert("Main");
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*",
contentScriptFile: data.url("noredirectlinks.js"),
contentScriptWhen: "ready"
});
alert("Content script");
var allLinks = document.getElementsByTagName("a");
for (var i=0, il=allLinks.length; i<il; i++) {
elm = allLinks[i];
if (elm.getAttribute("onclick")) {
elm.onclick = null;
}
if (elm.getAttribute("onmousedown")) {
elm.onmousedown = null;
}
}
noredirectlinks.js
alert("Main");
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");
pageMod.PageMod({
include: "*",
contentScriptFile: data.url("noredirectlinks.js"),
contentScriptWhen: "ready"
});
alert("Content script");
var allLinks = document.getElementsByTagName("a");
for (var i=0, il=allLinks.length; i<il; i++) {
elm = allLinks[i];
if (elm.getAttribute("onclick")) {
elm.onclick = null;
}
if (elm.getAttribute("onmousedown")) {
elm.onmousedown = null;
}
}
警报(“内容脚本”);
var allLinks=document.getElementsByTagName(“a”);
对于(var i=0,il=allLinks.length;i在main.js
中的警报无法在浏览器中显示任何内容。主加载项代码无法访问浏览器页面。要访问内容,必须使用(作为第二个脚本)
noredirectlinks.js
中的alert
应该可以工作。我会先在main.js
中没有alert
的情况下再次测试。然后您必须确保该文件位于data
文件夹中。是这样吗
你没有提供的代码中可能还有另一个错误,这可以解释为什么插件没有执行。还有其他代码吗?或者这就是全部吗?我删除了main.js
中的警报,感谢那里的解释。当我再次测试它时,noredirectlinks.js
中的警报起了作用。不过,起初我没有这么做k之所以这么做是因为我在本地HTML文件上测试了它。由于某种原因,它与“*”不匹配
模式,但其他网站显示了警报。是的,它在数据文件夹中,这就是一切。我认为它没有任何错误,因为我能够将其作为Chrome扩展。但是,有些事情的表现与我预期的不同,因为如果我搜索某个内容并单击链接,则仍然会发生onmousedown
事件。我很抱歉我在这里也是新来的,因为LaurentG回答了前面提到的问题。我是否应该重新发布一个新的问题,以了解为什么我没有根据需要取消mousedown
事件?您应该使用content.document
访问该文档。请看。如果我是正确的,我认为这不值得一个新问题。否则,另一个专业人士需要一个新问题我想,这个问题是StackOverflow处理这个问题的惯常方式。谢谢LaurentG!这正是我所缺少的。遗憾的是,我甚至没有15位代表给你一张向上投票的票,但如果其他人看到了,请代表我给LaurentG一张。