为什么可以检查if(document.addEventListener)是否返回false

时间:2010-10-11 15:41:04

标签: javascript addeventlistener

支票if (document.addEventListener)以什么为基础返回false?我们有办法改变这个吗?

3 个答案:

答案 0 :(得分:8)

如果if (document.addEventListener)中没有false方法,

addEventListener会评估为document。通常进行此检查以查看是否可以使用此方法将事件附加到DOM元素(适用于除IE之外的大多数浏览器)。

我们有办法改变这个吗?
这个问题我不太明白。也许你想要IE之类的document.attachEvent('onload', callback);之类的东西。你无法真正将addEventListener方法添加到文档中(好吧,也许你可以,但它没有意义)。

Docs for addEventListener

答案 1 :(得分:3)

如果此代码段返回false,则表示浏览器不支持addEventListener方法属性。这是case for Internet Explorer,而使用attachEvent代替:

if (document.addEventListener){  
  document.addEventListener(...);
} else if (document.attachEvent){  
  document.attachEvent(...);  
}

答案 2 :(得分:1)

如果未定义,则返回false值(尽管实际上不是false)。

这是一项标准feature (AKA object) detection测试。

您可以通过实施自己的版本来更改它。更常见的是,你将在包装函数中使用它,} else {具有IE特定处理。

相关问题