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 だったような気がするんですが、現行コードには入って無いみたいですね。というわけで調べてみました。
眠いんで説明しませんが理由付けがしっかりされています。
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
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