JavaScript でブラウザを判別する2006年05月27日 08時38分53秒

購入した Ajax 関係の参考書にて、ブラウザが IE か否かで分岐する手法として、以下のような構文を紹介していたのだが、

iftypeof ScriptEngine=='function'{
    //JScript2.0以降を積んだブラウザ(つまりIE用)
}

if 構文にカッコ () が存在しないどころか、if 命令と typeof 演算子の間にスペースすら空いていないので、てっきり「へぇ~、JavaScript には iftypeof なんて命令があるのか」とか思いながら別の JavaScript の参考書の索引を開いてみたらそんな命令は見つからない。んで、何のことやらさっぱりワカランとか思いながらいろいろとぐぐってみたら上記のページに行き当たった、と言うわけですわ。

実際には、ScriptEngine 関数と言うのが MS-IE 4.0 以降の JScript に固有のものであるため、こいつの typeof を調べれば、ブラウザが IE か否かをかなり確実に判別できるよ、というもの。だからより正確な記述法は以下のようになる。

if (typeof ScriptEngine == 'function'){
    // JScript2.0以降を積んだブラウザ(つまりIE用)
}

ちなみに、最初の例のような不届きな構文例を紹介していたのは以下のテキスト。

某所で Ajax 関連の参考書を見比べたときに、XMLHttpRequest オブジェクト取得の分岐サンプルが一番まともに見えたのでこいつを選んだのだが、全体的な内容はイマイチ。。。入門者としては「もうちょっと順序を追って解説してくれよぅ」とか思ってしまう。

iftypeof なんて命令が存在しないことを確認した参考書はこれ。

逆引き的に使ういわゆる辞典なんだけど、冒頭で書かれている JavaScript の文法に関する説明もかなり丁寧に書かれているので、JavaScript 入門者にも勧められるし、その他も、表紙のシンプルさからは見違えるようなカラフルな (でもうるさ過ぎない) ページデザインで、動作も図入りで分かりやすく、サンプルコードも適切で、全体的にかなり丁寧に記述されていると思う。良書っす。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
おいらがやっている会社の名前をひらがな4文字で。

コメント:

トラックバック

このエントリのトラックバックURL: http://harapeko.asablo.jp/blog/2006/05/27/382116/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。