3

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

JavaScript 代码在 QuirksMode 和普通 IE 模式下的行为是否可能不同?

4

3 回答 3

10

的。

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

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

检测这种行为很容易——document.documentElement.clientHeight == 0会告诉我们这documentElement不是根元素,而应该使用那个主体。

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

于 2009-10-01T13:26:37.893 回答
6

JavaScript 的行为不应有所不同;但是,JavaScript 操作的 DOM 对象可能具有不同的行为。

于 2009-10-01T13:17:24.353 回答
3

<a name="foo">在 Internet Explorer 8 中确实如此,在询问时不再获取完整标准模式document.getElementById('foo'),并且 (IIRC)setAttribute和朋友已修复。

于 2009-10-01T13:16:45.710 回答