QuirksMode& JavaScript实现

时间:2009-10-01 13:06:39

标签: javascript internet-explorer quirks-mode

我想问一下QuirksMode中的Internet Explorer在正常模式下是否具有与IE不同的JavaScript实现(正确定义了doctype)。

在QuirksMode和正常IE模式下,JavaScript代码是否可能以不同的方式运行?

3 个答案:

答案 0 :(得分:10)

<强>是的

最明显的区别之一是,在怪癖模式中,BODY(document.body)被认为是根元素,而在标准模式中(以及它的意图) - root元素是HTML(document.documentElement)。

例如,这会影响通常计算视口尺寸的方式;在标准模式下,可以使用document.documentElement.clientHeight,而在怪癖中使用document.body.clientHeight - 来获取视口的高度。

检测此行为很简单 - document.documentElement.clientHeight == 0 - 会告诉我们documentElement 不是根元素,而应该使用该正文。

当然,其他常见的怪癖模式差异,例如分配无单位CSS值,会导致不同的结果。在怪癖中,传统上这些值成功分配,而在标准模式下 - 它们被忽略。

答案 1 :(得分:6)

JavaScript不应该表现得不同;但是,JavaScript操作的DOM对象可能有不同的行为。

答案 2 :(得分:3)

在Internet Explorer 8中,当被问及<a name="foo">以及其中(IIRC)document.getElementById('foo')和朋友被修复时,完全标准模式不再获得setAttribute肯定会发生。