“var is” はまだ使える。

Date
2006-03-23 (Thu)
Category
javascript

slashdot のIE7はWindows Explorerと分離へを読んで、この間 var isなんてエントリを書いたばっかりだけど、使えなくなんのかよ!と焦った。

Internet Explorer との互換性向上
サイト互換性のため、判別を含まない document.all サポートが追加されました。また、キーボードアクセラレータの互換性を改善したことで、Internet Explorer ユーザがよりスムーズに移行できるようになりました。
Mozilla Firefox Preview Release (Greenlane) リリースノート

しかりよく見たらリリースノート古いしさ。焦ってググリまくったら、すご〜い古い話題だと気がついた。全ての正解は以下。

【DOCTYPE指定のXHTML文書】
 document.all      = undefine
 document.layers     = undefine
 if(document.all)    = false
 if(document.layers)   = false

【DOCTYPE指定なしHTML文書=quirks モード】
 document.all           = [object HTML document.all class]
 document.layers          = undefine
 if(document.all)         = false
 if(document.all('IDname'))    = true
 if(document.layers)        = false
 document.all("idname")      = [object HTML DivElement]
 document.all("idname").offsetTop = 正しい値
  
 document.allを使用すると、以下の警告がJavaScriptコンソールに出ます。
   →Warning: Non-standard document.all property was used.
         Use W3C standard document.getElementById() instead.
Mozのdocument.allサポート経由で見つけたMozilla が何と doument.all をサポートした!!

つまり standard 準拠モードなら var is は使える、と言うことですね。

検証するには、例えば

以下の bookmarklet をこのページで使うと、(IE 以外では)エラーが出ます。

document.all('container')

でも google のトップページに行って

document.all('1a')
document.getElementById('1a')

同じダイアログが現れたのではないでしょうか。ちょっと焦ったけど、ウラ取りが大事な世界に僕らは居るんだなと感じた今日この頃でした。

Comment:0

Comment Form

Remember Me?


Trackback:0

TrackBack URL for this entry
http://blogs.grf-design.com/mt/mt-tb.cgi/156
Listed below are links to weblogs that reference
“var is” はまだ使える。 from The Croton

Return to Page Top