1
这是一个非常基本的Firefox插件,它会打开一个新的tab
并加载指定的html
文件。
它将ContentScript
附加到tab
,但由于某种原因,alert('in event listener');
永远不会执行?
虽然alert('in script');
确实运行。
这是谁?window.addEventListener未在点击事件中执行
main.js
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')
});
}
});
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
view.html
<html>
<body>
<textarea id="text">yo</textarea>
</body>
</html>
它工作正常http://jsfiddle.net/D3FvU/。也许你正在做event.stopPropagation进一步下降,但我们不知道从这个代码 –
你试过它作为一个Firefox插件?我看到jsfiddle可以工作,但是当打包为addon时,相同的代码不起作用。我不会在任何地方调用'event.stopPropagation' – bobbyrne01
这很奇怪,请尝试'document.addEventListener' – Blagoh