Objection Detection: var is

Date
2006-03-02 (Thu)
Category
Web | javascript

前エントリ中で使ったのですが、browser detection のお話です。正確には Object Detection と呼ばれる技。

event の設定には prototype.js 内の Event.observe(...) などが、うまく抽象化されていて使いやすいんですが、設定する event handler が共通ではないとうまく行きません。今、僕のしたいことは IE vs Modern browsers で共通の event handler を見つけることは出来なさそうだったので、切り分けのコードが必要です。

var is という javascript を最初に見たのはありみかさんのあれこれ popup だったような気がするんですが、現行コードには入って無いみたいですね。というわけで調べてみました。

Quirksmode: Object detection

眠いんで説明しませんが理由付けがしっかりされています。

JavaScript Kit: Determining browser type using object detection

違う browser で使える object の表があります。

僕が今回必要なのは IE か Modern Browser(Firefox / Safari / Opera)かそうでないか、くらいなので、こんな感じでした。

var is = {
ie : document.all && !window.opera,
modern : document.getElementById && !document.all,
opera: window.opera && document.getElementById
}

try: document.all
try: document.getElementById
try: window.opera

getElementById だけだと IE 5 以上は true を返しそうです。Opera には document.all があるっぽいから、別途分けなければイケません。なので使う時には…

if (is.modern || is.opera) {
// do something for modern browsers.
} else if (is.ie) {
// do something for modern browsers.
}

こんな感じでしょうか。

Comment:0

Comment Form

Remember Me?


Trackback:0

TrackBack URL for this entry
http://blogs.grf-design.com/mt/mt-tb.cgi/151
Listed below are links to weblogs that reference
Objection Detection: var is from The Croton

Return to Page Top