繁体   English   中英

在Chrome扩展中单击元素之前的事件侦听器运行功能

[英]Event Listener Running Function Before The Element Is Clicked In Chrome Extension

我最近一直在为Google Chrome创建扩展程序,清单版本2表示我不能使用事件处理程序(onclick,onmouseover,ondblclick等)INSIDE我创建的html文件。 它确实说我可以在链接到它的脚本上创建它们。 唯一的问题是,当我单击图标时,该功能在我单击实际的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>

我的popup.js文件有这个功能:

var sButton = document.getElementById('submitButton');
sButton.addEventListener('onclick',alert('This is not supposed to happen until I click the div'),false);

//I also put the alert in a function like so: function() {alert('what it said')}

在我注意到这种方式不起作用后,我接受了这个:

sButton.onclick = function() {alert('same thing')}

当我点击扩展图标并且甚至没有运行popup.html时,我所做的任何一种方式都会发出警报。 我不知道是否需要添加一个函数,但由于我是新手(我的第一个扩展名),我真的不知道我是否应该添加一个特殊的chrome方法或其他东西。 我查看了Google Dev页面,但没有帮助。 它只教我基础知识。

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

它应该是:

sButton.addEventListener('click',
    function() {alert('This is not supposed to happen until I click the div'),false);});

您正在调用alert()并将其结果传递给addEventListener 您需要传递一个调用alert()的函数。

顺便说一句,在addEventListener指定事件时,不包含on前缀 - 它只是click

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM