Отправка Firefox 5 событие не работает
У меня есть код, который использует dispatchEvent
для имитации кликов и того же точного кода отлично работает в Chrome, но не работает в Firefox. Вот код:
var evt = document.createEvent("MouseEvents");
evt.initEvent("click",true,true);
jQuery("a:contains(Next)")[0].dispatchEvent(evt);
Я нажимаю на ссылку, которая загружает другую страницу, и страница загружается нормально в Chrome, но Firefox абсолютно ничего не делает, когда я запускаю этот код в Firebug или даже когда я выполняю его как букмарклет. Я также попробовал длинную форму инициализации события, установив все параметры, как показано в документации MDC, но это ничего не дает. Что именно я здесь делаю не так?
2 ответа
Поскольку ваше событие выглядит как событие мыши, вы можете попробовать использовать событие мыши, как в следующем примере:
var oEvt = (document.createEvent)? document.createEvent('MouseEvents') : document.createEventObject();
// W3C
if (oEvt.initMouseEvent)
oEvt.initMouseEvent(
/* type*/ 'mouseup',
/* bubble*/ true,
/* cancel*/ true,
/* AbstractView*/ window,
/* detail */ 10,
/* screenX */ 20,
/* screenY */ 30,
/* clientX */ 40,
/* clientY */ 50,
/* ctrlKey */ false,
/* altKey */ false,
/* shiftKey */ true,
/* metaKey */ false,
/* button */ 0,
/* relatedTarget*/ null ) ;
// MSIE
else {
var oEvt = document.createEventObject();
oEvt.detail = 10;
oEvt.screenX = 20;
oEvt.screenY = 30;
oEvt.clientX = 40;
oEvt.clientY = 50;
oEvt.ctrlKey = false;
oEvt.altKey = false;
oEvt.shiftKey = true;
oEvt.metaKey = false;
oEvt.button = 0;
oEvt.relatedTarget = null;
}
Смотрите типы событий мыши W3C
Я также написал учебник на французском языке о стрельбе по событиям DOM; Я думаю, это легко перевести.
Это ошибка в Firefox, смотрите это:
https://bugzilla.mozilla.org/show_bug.cgi?id=395917
Боюсь, я не знаю, как обойти это.