Javascript 中的 MSIE 和 addEventListener 问题
尝试在 document.getElementById('container') 元素上使用 addEventListener 方法执行时在网页上复制内容时使用“beforecopy”功能,用户可能会在 Internet Explorer (MSIE) 中遇到“对象不支持此属性或方法”错误。
出现此问题是因为 MSIE 需要使用AttachEvent 而不是标准的 addEventListener 方法。要解决此问题,请检查 addEventListener 方法是否可用,如果可用则使用它,否则诉诸 AttachEvent:
if (el.addEventListener){ el.addEventListener('click', modifyText, false); } else if (el.attachEvent){ el.attachEvent('onclick', modifyText); }
另一种方法是创建一个函数来执行此任务:
function bindEvent(el, eventName, eventHandler) { if (el.addEventListener){ el.addEventListener(eventName, eventHandler, false); } else if (el.attachEvent){ el.attachEvent('on'+eventName, eventHandler); } } bindEvent(document.getElementById('myElement'), 'click', function () { alert('element clicked'); });
addEventListener 的第三个参数是 useCapture,当设置为 true 时,表示应该启动事件捕获。
以上是为什么 `addEventListener` 在 MSIE 中抛出错误?的详细内容。更多信息请关注PHP中文网其他相关文章!