Czy to ja? Czy to mój IE? lub dlaczego jest ten kod nie działa na IE 11:MouseEvent nie działa w Internet Explorerze
var clicker = new MouseEvent("click", {
'bubbles': true,
'cancelable': true,
'view': window,
'detail': 0,
'screenX': 0,
'screenY': 0,
'clientX': 0,
'clientY': 0,
'ctrlKey': false,
'altKey': false,
'shiftKey': false,
'metaKey': false,
'button': 0,
'relatedTarget': null
});
otrzymuję „Obiekt nie obsługuje tej akcji” na konsoli (F12). Musiałem wymyślić obejście, ale po prostu nie rozumiem, dlaczego poprzedni kod nie działa (przy okazji, poprzedni kod pochodzi stąd: https://msdn.microsoft.com/en-us/library/ie/dn905219(v=vs.85).aspx (Tworzenie i uruchamianie zdarzeń syntetycznych) Obejście:
if (typeof MouseEvent !== 'function') {
(function(){
var _MouseEvent = window.MouseEvent;
window.MouseEvent = function (type, dict){
dict = dict | {};
var event = document.createEvent('MouseEvents');
event.initMouseEvent(
type,
(typeof dict.bubbles == 'undefined') ? true : !!dict.bubbles,
(typeof dict.cancelable == 'undefined') ? false : !!dict.cancelable,
dict.view || window,
dict.detail | 0,
dict.screenX | 0,
dict.screenY | 0,
dict.clientX | 0,
dict.clientY | 0,
!!dict.ctrlKey,
!!dict.altKey,
!!dict.shiftKey,
!!dict.metaKey,
dict.button | 0,
dict.relatedTarget || null
);
return event;
}
})();
}
Transakcja jest to, że chcą migrować przestarzałej CreateEvent/initXXXXEvent do nowej postaci (var event = new XXXXEvent (...)), w miarę możliwości, a nie polegać na przestarzałych metod.
Ah! Mój mózg chciał przeczytać IE 10 ... zupełnie inaczej niż IE na Windows 10. Dziękuję za wskazanie problemu. –
Oto sposób obejścia: http://www.codeproject.com/Tips/893254/JavaScript- Triggering-Event-Manaally-in-Internet-E – geraldo