Internet Explorerのみscriptが動かない→console.logの置き忘れを疑え

JavaScriptの便利なデバッグ手段、console.logについて以前のエントリで紹介しました。この命令は特にWebKitブラウザやFirefoxとの相性が良く、変数の中身の確認のためついつい頼りがちです。しかしながら、作成完了したページにこの命令を残したままにしておき、いざクライアントのPCでチェックを行うと、scriptが全く動作せずに恥をかく危険性があります。というのも、Internet Explorerはこの命令をデフォルトでは解釈せず、scriptを止めてしまうからです。

Internet Explorerの場合には、F12で起動する開発ツールが有効になっている場合に初めてconsoleオブジェクトが作成されます。したがって原因がconsoleオブジェクトにあることに気付かなければ、検証のため開発ツールウィンドウを開いた際には作動ということで、症状の発生が不規則→通信の問題ではないか、などとどんどん疑いの対象が広がり収拾がつかなくなります。実は私がこの問題に嵌ったときには、問題の発生したページがAjaxをフルに使ったものであったため、原因の所在が非同期通信の実行順序かIEのJavaScript実行速度の問題かなどと、いつもながらの遠回りに時間を取られてしまいました。

そこで教訓ですが、Internet Explorerだけ動かないという場合には真っ先にconsole.logを疑う。以前のエントリで挙げましたが、Firefoxだけ動かない時には宣言部、ヘッダ部を疑う。とりあえずこのように記憶しておきましょう。


Internet Explorerのみscriptが動かない→console.logの置き忘れを疑え」への1件のフィードバック

  1. ピンバック: console.logでJavaScriptの変数の中身を見る | AkisiのWEB制作日記

コメントを残す

メールアドレスが公開されることはありません。