addEventListener in Chrome

addEventListener in Chrome

本文关键字:Chrome in addEventListener      更新时间:2023-09-26

我正在学习Lynda.com上关于新的DOM事件模型的教程。

这是我正在使用的代码。

function addEventHandler(oNode, sEvt, fFunc, bCapture){
if (typeof (window.event) != "undefined")
    oNode.attachEvent("on" + sEvt, fFunc);
else
    oNode.addEventListener(sEvt, fFunc, bCapture);
}
function onLinkClicked(e){
alert('You clicked the link');
}
function setUpClickHandler(){
addEventHandler(document.getElementById("clickLink"), "click", onLinkClicked, false);
}

addEventHandler(window, "load", setUpClickHandler, false);

我将它添加到这个链接的点击事件

<a href="#" title="click me" id="clickLink">Click Me!</a>

它在IE, Firefox, Opera中工作得很好,但在Chrome中不行。我四处看了看,但还没有找到任何具体的东西。一些类似的问题,但它没有回答我的问题。

我从Chrome控制台得到以下错误:

Uncaught TypeError: Object [Object htmlchoreement] has no method 'attachEvent'

有什么建议或答案的链接吗?

为什么要测试:

if (typeof (window.event) != "undefined")

…以决定是否使用attachEvent() ?Chrome确实定义了window.event,所以你的代码试图使用attachEvent(),这是没有定义的。

尝试直接测试方法:

if (oNode.attachEvent)
    oNode.attachEvent("on" + sEvt, fFunc);
else
    oNode.addEventListener(sEvt, fFunc, bCapture);