Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox addon 在Firefox插件生成器中使用警报_Firefox Addon - Fatal编程技术网

Firefox addon 在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

我正在尝试使用编写我的第一个Firefox扩展。我不明白为什么我的代码似乎根本没有运行,因为两个
警报都没有弹出。为什么不发出警报(“主”)创建弹出窗口

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一张。