IE 11 调度事件

IE 11 DispatchEvent

本文关键字:事件 调度 IE      更新时间:2023-09-26

我们有一个日期选择器(在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 中工作的方法。我只是无法弄清楚什么是失败以及如何解决它。

谢谢。

你的问题是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);
}