2014-04-30 2 views
0

Как я могу присоединить событие к кнопке на всплывающее окно с расширением хромированной? Я прочитал thishttps://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution и все еще не могу заставить его работать; скрипт просто выполняет «удивительные» функции один раз, а затем моя кнопка ничего не делает.Использование JavaScript события в расширении хромированной

PD: Я новичок в обоих Javascript и Chrome расширений, так что я не знаю, где именно я делаю что-то неправильно. Я добавлю оба тега, если все в порядке.

Edit: добавить код для моего расширения, хотя почти такой же, как в примере в ссылке developer.chrome.

popup.html

<!doctype html> 
<html> 
    <head> 
    <title>Getting Started Extension's Popup</title> 
    <script src="creatediv.js"></script> 
    </head> 
    <body> 
    <button id="aaaa">something</button> 
    </body> 
</html> 

creatediv.js

document.addEventListener('DOMContentLoaded', function() { 
    document.getElementById('aaaa').addEventListener('click', loadDiv()); 
}); 

function loadDiv(){ 
    var myDiv = document.createElement("div"); 
    document.documentElement.appendChild(myDiv); 
    myDiv.id = "mydiv"; 
    myDiv.innerHTML = "asdf"; 
    alert(123); 
    return false; 
}; 

Когда я нажимаю на значок расширения функция loadDiv запускается на выполнение: я получаю предупреждение окно с 123 на нем, а затем сНу с «asdf» добавляется к popup.html. Кнопка «что-то» ничего не делает.

+0

Итак, вы хотите, нажмите кнопку, чтобы вызвать функцию в фоновом скрипте? – PlasmaPower

+0

Вам нужно показать нам свой код, если вы хотите, чтобы мы выяснили, что случилось. Включите html и javascript для своего всплывающего окна. – rsanchez

+0

Отредактировано с моим фактическим кодом. С другой стороны, я не думаю, что есть проблема с тем, что это расширение хром; он также не работает, когда я открываю popup.html как обычный веб-сайт, хотя он работал, когда я использовал onclick(). – carllacan

ответ

2

Оно должно быть:

document.getElementById('aaaa').addEventListener('click', loadDiv); 

Это выполняет loadDiv когда триггеры событий в то время как ваш код выполняется loadDiv при добавлении слушателя.

+0

Да, это было! Большое спасибо, это убило меня. – carllacan

+0

Не могу поверить, что я этого не понимал. +1 – PlasmaPower

Смежные вопросы