javascript - Javascript 中的 MSIE 和 addEventListener 问题?

标签 javascript internet-explorer addeventlistener

document.getElementById('container').addEventListener('copy',beforecopy,false );

在 Chrome/Safari 中,当复制页面上的内容时,上述将运行“beforecopy”功能。 MSIE 应该也支持此功能,但由于某种原因我收到此错误:

"Object doesn't support this property or method"

现在,我的理解是 Internet Explorer 不会使用正文节点,但我认为通过 ID 提供节点会很好。有没有人对我做错了什么有任何想法?提前致谢。

** 如果有人能告诉我第三个参数“False”有什么用,可以加分。

最佳答案

在 IE 中你必须使用 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');
});

您可以运行上述代码的示例here .

addEventListener的第三个参数是useCapture;如果为真,则表示用户希望发起 event capturing .

关于javascript - Javascript 中的 MSIE 和 addEventListener 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695376/

相关文章:

javascript - 带 promise 的异步循环?

javascript - 如何在Metro Style App中监听连接状态变化?

css - 使用 CSS 在链接后添加图像在 Firefox 和 IE 中不起作用

html - ie7 中不使用 padding

javascript - 自调用函数作为 jQuery 文件就绪回调

JavaScript 播放音频一个又一个 HTML5

javascript - 有什么方法可以使用 Express3.x 将模板呈现为变量吗?

internet-explorer - 什么是 IE 开发人员工具栏中的 <!> 元素

javascript - 如何修复 addEventListener 不起作用?

javascript - Chrome 扩展 - 写入不同域的本地存储