Есть обработчик который запускает ф-цию при загрузке страницы
в свою очередь ф-ция должна обработать событие нажатия "мыши" на кнопке с id="button"
function Gbs(){ var pm=content.document.getElementById("button"); //вариант 1 pm.addEventListener("MouseDown",alert("ok"), false); //вариант 2 pm.onMouseDown=alert('ok'); }
Оба варианта срабатывают только при загрузке страницы. Подскажите,пожалуйста что нужно изменить чтобы событие наступало во время нажатия "мыши" на кнопку.
P.S. Скрипт работает из расширения.
Отредактировано FBB (16-08-2013 15:55:04)
Отсутствует
pm.addEventListener("MouseDown",alert("ok"), false);
- addEventListener вторым аргументом принимает ссылку на метод (делегат). В случае передачи alert("ok") в addEventListener передается результат отработки alert("ok") - void, и на выходе получаем undefined. В случае передачи function(event) alert("ok") (или, если без лямбда-синтаксиса, function(event) { alert("ok"); }) передается ссылка на анонимный метод, который вызвается при срабатывании листенера.
Отсутствует
К сожалению не работает даже во время загрузки окна. Да и как мне подключить какую-нибудь внешнюю ф-ию? Например
Вот так не работает
Или нужно -
pm.addEventListener("MouseDown", alrt(event), false); function alrt(e) { alert("ok"); }
Отсутствует
не работает даже во время загрузки окна
оно не должно работать во время загрузки окна, оно должно работать по MouseDown
Или нужно
Нет, не нужно. Еще раз прочитайте мой предыдущий постинг - в addEventListener нужно передавать не результат отработки метода, а сам метод.
Отсутствует
И да, имена ивентов - case-sensitive.
https://developer.mozilla.org/en-US/doc … nce/Events
https://developer.mozilla.org/en-US/doc … /mousedown
Отредактировано hydrolizer (17-08-2013 17:41:05)
Отсутствует