在360模式下,js程序中报 对象不支持“attachEvent”属性
报错代码如下:
if (window.VBArray && window.addEventListener) { //IE9
el.attachEvent('onkeydown', function () {
//do something...;
});
el.attachEvent('oncut', function () {
//do something...;
}); //处理粘贴
}
调整后代码如下:
if (window.VBArray && window.addEventListener) { //IE9
if (el.attachEvent) {
el.attachEvent('onkeydown', function () {
//do something...;
});
el.attachEvent('oncut', function () {
//do something...;
}); //处理粘贴
}else if (el.addEventListener) {
el.addEventListener('keydown', function () {
//do something...;
}, false);
el.addEventListener('cut', function () {
//do something...;
}, false);
}
}
原因:
ie 11 移除了 attachEvent() 方法,该方法用于添加事件处理器,对应的 detachEvent() 用来移除事件处理器。
这两个方法将在 Internet Explorer 11 中删除。
移除这两个方法需要改用如下逻辑:
function addEvent(element, type, handler) {
if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else if (element.addEventListener) {
element.addEventListener(type, handler, false);
}
}