小编典典

MSIE和addEventListener在JavaScript中有问题吗?

javascript

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

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

“对象不支持此属性或方法”

现在,据我了解,Internet Explorer不会与主体节点一起使用,但我本来认为按ID提供节点会很好。有人对我在做什么错有任何想法吗?提前致谢。

**任何可以告诉我第三个参数“ False”有什么用的人的奖励积分。


阅读 274

收藏
2020-04-25

共1个答案

小编典典

在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');
});

您可以在此处运行上述代码的示例。

第三个论点addEventListeneruseCapture;如果为true,则表示用户希望启动事件捕获

2020-04-25