我们有一个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中的其他部分工作的方法。我只是无法弄清楚什么是失败的如何解决它。
感谢。
答案 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);
}