2010-10-11 100 views

回答

1

如果未定义,它将返回一个错误值(虽然实际上不是false)。

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

你可以通过实现你自己的版本来改变它。更通常的情况下,你将在包装函数中使用这个函数,} else {具有IE特定的处理。

7

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

有没有办法改变这种情况?
这个问题我不完全明白。可能你想为IE浏览器提供类似document.attachEvent('onload', callback);的内容。你不能真的添加addEventListener方法来记录文件(也许你可以,但它没有任何意义)。

Docs for addEventListener

+0

我的意思是有什么我可以做的将这种方法添加到文档? – Miroo 2010-10-11 15:47:11

+0

@Miroo不,但您可以使用特定于IE的方式来处理事件。 (就像我的例子中的'onload') – 2010-10-11 15:48:03

+0

它和我一起工作在IE9上,但在不同的应用程序框架下4 – Miroo 2010-10-11 15:48:59

2

如果该代码段返回false,这意味着addEventListener方法属性不是由浏览器支持。这是case for Internet Explorer,其中attachEvent而是使用:

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

我想用这个在IE9上添加一个thumbBarButtons,我尝试了attachchevent,但它没有工作:S和所有代码示例没有提到我们可以使用它来附加'msthumbnailclick'事件 – Miroo 2010-10-11 15:52:40

+0

IE9支持的addEventListener – kennebec 2010-10-11 17:52:44