3

QuirksModeのInternetExplorerに通常モードのIEとは異なるJavaScript実装があるかどうかを尋ねたいと思います(doctypeが正しく定義されている場合)。

JavaScriptコードがQuirksModeと通常のIEモードで異なる動作をする可能性はありますか?

4

3 に答える 3

10

うん

最も顕著な違いの1つは、クァークズモードでは、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 に答える