Javascript Firefox页面模版-“contentScript”:null

Javascript Firefox页面模版-“contentScript”:null,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我在做这件事 这是我的密码: main.js element-getter.js: 对不起,我被SyntaxError搞得心烦意乱。这是一个语法错误,但不是由于编码 从您的回购协议: self.port.on('getElements', function(tag) { console.log('received tag ', tag) var elements = document.getElementsByTagName(tag) console.log('found

我在做这件事

这是我的密码: main.js

element-getter.js:


对不起,我被SyntaxError搞得心烦意乱。这是一个语法错误,但不是由于编码

从您的回购协议:

self.port.on('getElements', function(tag) {
    console.log('received tag ', tag)
    var elements = document.getElementsByTagName(tag)
    console.log('found elements ', elements)
    for (var i=0; i< elements.length; i++) {
        self.port.emit('gotContent', elements[i].innerHTML)
    }) // <-- trailing parenthesis, left-over from having .forEach in there before 
})

通过删除后面的括号修复此问题后,代码对我有效。

不知道为什么没有日志消息?!当我刚试过那个代码时,它给了我一堆日志信息!您的页面mod仅包含*.mozilla.org,可能您没有浏览mozilla.org网站,因为忘记调整包含过滤器?在初始消息之后,当然有一个错误,TypeError:elements.forEach不是一个函数,这是应该的,因为getElementsByTagName不返回带有.forEach的数组,而是一个NodeList.Wow,这很奇怪。我使用for循环而不是forEach更新了代码。请您再试一次,让我知道它在控制台上记录的最后一条消息好吗?您可以将element-getter.js的精确副本上传到您的磁盘上,而不仅仅是复制粘贴它。我怀疑文件已损坏,例如编码损坏。正如您的控制台输出所示,有一个报告的语法错误没有行号,这通常表明JS解析器完全拒绝了该文件。您的意思是将文件上载到dropbox还是什么?下面是github repo:。我必须用谷歌搜索一下我使用的升华文本的编码,尽管我以前从来没有遇到过问题。谢谢!这些语句将被记录在终端中,但它们仍然不会显示在浏览器控制台中。他们是来找你的吗?没有回答你的问题。这是意料之中的,只有在浏览器中手动安装插件XPI,但默认情况下不会记录比.error更重要的内容,文档中也解释了这一点。
self.port.on('getElements', function(tag) {
    console.log('received tag ', tag)
    var elements = document.getElementsByTagName(tag)
    console.log('found elements ', elements)
    for (var i=0; i< elements.length; i++) {
        self.port.emit('gotContent', elements[i].innerHTML)
    })
})
console.error: pgmod:
  Message: SyntaxError: syntax error
console.log: pgmod: worker  constructor {"contentScriptFile":"resource://jid1-kkjpd9s1yzxe9g-at-jetpack/pgmod/data/element-getter.js","contentScript":null,"port":{}}
self.port.on('getElements', function(tag) {
    console.log('received tag ', tag)
    var elements = document.getElementsByTagName(tag)
    console.log('found elements ', elements)
    for (var i=0; i< elements.length; i++) {
        self.port.emit('gotContent', elements[i].innerHTML)
    }) // <-- trailing parenthesis, left-over from having .forEach in there before 
})