javascript - IE 11 调度事件

标签 javascript

我们有一个日期选择器(在 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 11 中运行。我只是不知道失败的原因以及如何修复它.

谢谢。

最佳答案

您的问题是 fireEvent 不应在较新的 IE 版本中使用。在 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);
}

关于javascript - IE 11 调度事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643181/

相关文章:

javascript - Mac 上 Chrome 的 Canvas 问题

javascript - JSON,解析不同名称的子对象

javascript - 无需多个 if-else 的密码验证

javascript - 如何使用下划线JS从嵌套数组中删除对象

javascript - 2个窗口中需要全局变量

javascript - 如何在 google.maps.places.PlacesService(map).textSearch() 中添加回调函数

javascript - 使用 Express 故意发送无效的 HTTP 响应

javascript - 如何修复警告 : validateDOMNesting(. ..):<div> 不能作为 <tbody> 的子项出现

JavaScript 只允许在元素显示时点击

java - 如何在 Java 和 JavaScript 之间传递字节数组