Недавно я создавал расширение для Google Chrome, и в манифесте версии 2 говорится, что я не могу использовать обработчики событий (onclick, onmouseover, ondblclick и т. д.) ВНУТРИ 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, но это не помогло. Это научило меня только основам.
Любая помощь будет оценена, спасибо заранее.
addEventListener
должен передать функцию; вы передаете возвращаемое значение от вызова кalert()
- person Pointy   schedule 05.09.2013