>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Обработчик события. http://forum.mozilla-russia.org/viewtopic.php?id=59986 |
FBB > 16-08-2013 13:01:21 |
Есть обработчик который запускает ф-цию при загрузке страницы в свою очередь ф-ция должна обработать событие нажатия "мыши" на кнопке с id="button" Выделить код Код:function Gbs(){ var pm=content.document.getElementById("button"); //вариант 1 pm.addEventListener("MouseDown",alert("ok"), false); //вариант 2 pm.onMouseDown=alert('ok'); } Оба варианта срабатывают только при загрузке страницы. Подскажите,пожалуйста что нужно изменить чтобы событие наступало во время нажатия "мыши" на кнопку. P.S. Скрипт работает из расширения. |
hydrolizer > 16-08-2013 18:31:49 |
FBB пишет
- addEventListener вторым аргументом принимает ссылку на метод (делегат). В случае передачи alert("ok") в addEventListener передается результат отработки alert("ok") - void, и на выходе получаем undefined. В случае передачи function(event) alert("ok") (или, если без лямбда-синтаксиса, function(event) { alert("ok"); }) передается ссылка на анонимный метод, который вызвается при срабатывании листенера. |
FBB > 17-08-2013 10:55:53 |
К сожалению не работает даже во время загрузки окна. Да и как мне подключить какую-нибудь внешнюю ф-ию? Например Вот так не работает Или нужно - Выделить код Код:pm.addEventListener("MouseDown", alrt(event), false); function alrt(e) { alert("ok"); } |
hydrolizer > 17-08-2013 11:24:33 |
FBB пишет
оно не должно работать во время загрузки окна, оно должно работать по MouseDown FBB пишет
Нет, не нужно. Еще раз прочитайте мой предыдущий постинг - в addEventListener нужно передавать не результат отработки метода, а сам метод. |
hydrolizer > 17-08-2013 17:39:48 |
И да, имена ивентов - case-sensitive. |
FBB > 19-08-2013 10:12:31 |
hydrolizer пишет
Да , спасибо, здесь собака порылась. |