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/