Javascript 在Chrome扩展中单击元素之前运行函数的事件侦听器

Javascript 在Chrome扩展中单击元素之前运行函数的事件侦听器,javascript,html,google-chrome,google-chrome-extension,event-handling,Javascript,Html,Google Chrome,Google Chrome Extension,Event Handling,我最近为Google Chrome创建了一个扩展,清单版本2说我不能在我创建的html文件中使用事件处理程序(onclick、onmouseover、ondblick等)。它说我可以在我链接到它的脚本上创建它们。唯一的问题是,当我单击图标时,函数在我单击实际的div元素之前运行。我真的很困惑我做错了什么,所以我尝试了几种方法: 我的manifest.json文件似乎工作正常,我没有收到任何错误,每个链接的页面都正常工作,还有icon.png文件 { "name" : "Test",

我最近为Google Chrome创建了一个扩展,清单版本2说我不能在我创建的html文件中使用事件处理程序(onclick、onmouseover、ondblick等)。它说我可以在我链接到它的脚本上创建它们。唯一的问题是,当我单击图标时,函数在我单击实际的div元素之前运行。我真的很困惑我做错了什么,所以我尝试了几种方法:

我的manifest.json文件似乎工作正常,我没有收到任何错误,每个链接的页面都正常工作,还有icon.png文件

{
    "name" : "Test",
    "version" : "1.0",
    "manifest_version" : 2,
    "description" : "Trying it out",
    "browser_action" : {
"default_icon" : "icon.png",
"defalut_title" : "Test",
"default_popup" : "popup.html"
},
    "chrome_url_overrides" : {
"newtab" : "newtab.html"
}
}
以下是我在popup.html文件中的内容:

<html>
<head></head>
<body>
<div id="submitButton">Submit!</div>
</body>
</html> <!-- The rest of the code is unnecessary since it is not used as for now -->
<script type="text/javascript" src="popup.js"></script>
当我注意到这种方法不起作用后,我就这样做了:

sButton.onclick = function() {alert('same thing')}
我这样做的任何一种方式都会在我单击扩展图标时发出警报,而它甚至没有运行popup.html。我不知道我是否需要添加一个函数,但因为我是新来的(我的第一个扩展),我真的不知道我应该添加一个特殊的chrome方法还是什么。我已经浏览了谷歌开发页面,但没有任何帮助。它只教会了我一些基本知识

任何帮助都将不胜感激,请提前感谢。

应该是:

sButton.addEventListener('click',
    function() {alert('This is not supposed to happen until I click the div'),false);});
您正在调用
alert()
并将其结果传递给
addEventListener
。您需要传递一个函数,该函数将调用
alert()


顺便说一句,在
addEventListener
中指定事件时,您不需要在
前缀中包含
——只需
单击

您对
addEventListener
的调用需要传递一个函数;您正在将调用的返回值传递给
alert()
,因此如果要传递函数,必须执行以下操作::sButton.addEventListener('onclick',function(){myFunctionCall()},false);如果您只想传递一个命名函数,可以执行
sButton.addEventListener('click',myFunctionCall)
。如果需要为函数指定参数,只需将其包装在
function(){…}
中,就像在警报中一样。感谢您的帮助。我试过onclick和just click,但它们似乎都不起作用。我会试试你现在说的话,并了解最新情况。再次感谢。它工作得很好。非常感谢你的帮助。。。对不起,我没有编辑我的其他评论,它不允许我这样做,所以我必须创建一个新的。再次感谢。在写评论和编辑评论之间,你可以等待的时间是有时间限制的,我想是5分钟。
sButton.addEventListener('click',
    function() {alert('This is not supposed to happen until I click the div'),false);});