Подтвердить что ты не робот

IE 11 DispatchEvent

У нас есть datepicker (в JavaScript), в котором есть раздел для проверки IE 8 и более старых и других современных браузеров.

if(-1 != navigator.userAgent.indexOf("MSIE")){
obj_caller.target.fireEvent("onchange");
}
else {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
obj_caller.target.dispatchEvent(evt);
}

Он отлично работает в Chrome, Firefox, IE8 и ниже, но не работает в IE 11. Мне нужен способ получить часть else, работающую в IE 11. Я просто не могу понять, что происходит, и как это исправить.

Спасибо.

4b9b3361

Ответ 1

Ваша проблема в том, что fireEvent не следует использовать в новых версиях IE. Поддержка отправки диспетчера была добавлена ​​в IE9. http://help.dottoro.com/ljrinokx.php

if(document.createEventObject) {
    obj_caller.target.fireEvent("onchange");
} else {
    var evt = document.createEvent("HTMLEvents");
    evt.initEvent("change", false, true);
    obj_caller.target.dispatchEvent(evt);
}