Javascript 单击事件时未执行window.addEventListener

Javascript 单击事件时未执行window.addEventListener,javascript,firefox-addon,firefox-addon-sdk,addeventlistener,Javascript,Firefox Addon,Firefox Addon Sdk,Addeventlistener,这是一个非常基本的Firefox插件,它打开一个新选项卡并加载指定的html文件。 它将ContentScript附加到选项卡上,但出于某种原因,会发出警报“在事件侦听器中”;从来没有被处决过? 虽然警报“在脚本中”;它跑了。 为什么 main.js controller.js view.html 转向解决方案 将onOpen更改为onReady,而不是document.addEventListener使用window.addEventListener。bobbyrne01报告说它工作正常,但不

这是一个非常基本的Firefox插件,它打开一个新选项卡并加载指定的html文件。 它将ContentScript附加到选项卡上,但出于某种原因,会发出警报“在事件侦听器中”;从来没有被处决过? 虽然警报“在脚本中”;它跑了。 为什么

main.js

controller.js

view.html

转向解决方案


将onOpen更改为onReady,而不是document.addEventListener使用window.addEventListener。bobbyrne01报告说它工作正常,但不知道为什么它会被修复。

它工作正常。也许你正在做event.stopPropagation,但我们不知道从这段代码中你是否尝试过作为firefox插件?我看到JSFIDLE可以工作,但当打包为插件时,相同的代码不工作。我不会调用event.stopPropagation无论在什么地方这很奇怪,请尝试document.addEventListener仍然没有使用document的警报。addEventListener更改为onReady完成了window的操作。addEventListener,非常感谢!
var tabs = require("sdk/tabs");

tabs.open({
  url: require('sdk/self').data.url('html/view.html'),
  isPinned: true,
  onOpen: function onOpen(tab) {

    console.log("onOpen");
    tab.attach({
      contentScriptFile: require('sdk/self').data.url('js/controller.js')
    });
  }
});
window.addEventListener('click', function(event) {

  alert('in event listener');

}, false);

alert('in script');
alert(document.getElementById("text").value);

// output
//   console.error: MyApp: 
//   Message: TypeError: document.getElementById(...) is null
<html>
    <body>
        <textarea id="text">yo</textarea>
    </body>
</html>