IE 11 DispatchEvent

时间:2014-12-24 23:56:41

标签: javascript

我们有一个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中失败。我需要的是让IE中的其他部分工作的方法。我只是无法弄清楚什么是失败的如何解决它。

感谢。

1 个答案:

答案 0 :(得分:11)

您的问题是不应该在较新的IE版本中使用fireEvent。在IE9中添加了对dispatchEvent的支持。 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);
}