2012-06-03 26 views
11

HTMLDocumentまたはHTMLElementを参照すると、IE8でエラーが発生します。HTMLDocumentとHTMLElementをIEととらえて

エラーは「HTMLElement is undefined」です。

JSがこのブラウザのネイティブDOMオブジェクトとやりとりする方法を教えてください。

+0

http://stackoverflow.com/questions/8868004/htmlelement-is-undefined-in-ie8-an-alternative – mplungjan

+0

@mplungjan - これは、DOMコアについてではなく、特定の要素を要求していないため、 API。 –

答えて

13

IE8では、ElementHTMLDocumentクラスを使用する必要があります。 IE7では...何もない。なぜなら、IE7は標準規格にとってひどいからだ。 jQueryやDOM要素をラップする他のフレームワークに依存する必要があります。それはIE7と下位のためのフレームワークではありません

var elementPrototype = typeof HTMLElement !== "undefined" 
     ? HTMLElement.prototype : Element.prototype; 

マインドますこと:私自身のフレームワークで

私はこの簡単なチェックを行います。

+2

IE8でもう一度テストしましたが、ElementとDocumentはどちらも未定義です。 –

+3

@TzuryBarYochay IE8では、「要素」が定義されています。そうでない場合は、互換モードになっているからです。 'Document'については、実際には' HTMLDocument'です。それに応じて – MaxArt

+0

と回答しました;-) –