kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

IE11の互換表示で開発者ツールでのデバッグ時と通常時(開発者ツールを開いていない場合)における挙動の違い

  • 状況
    • IE11、互換表示モード、F12で開発者ツールを開いた状態だと動く
    • IE11、互換表示モード、F12で開発者ツールを閉じた状態だと動かない
    • Google Chromeだと動く
  • 調査
    • jQuery使っていて(ver1.4と古い)、.getJSONや.ajaxのキャッシュかと思ったけど

cashe:false や自前でGETのパラメータを追加しても、動かない状況は変わらない

同じ原因だった。
IE11を互換表示で、IE7で動かすと、console.log 関数が存在しておらず
javaScriptがエラーになって、そこで止まってしまう。

(function () {
    // window.console が未定義なら、オブジェクトにする
    if (typeof window.console === "undefined") {
         window.console = {}
    }
    // window.console.log が function でないならば、空の function を代入する
    if (typeof window.console.log !== "function") {
         window.console.log = function () {}
    }
})();

を、共通用のjsファイルに追加して対応した。

互換表示って、かゆいところに届いているんだろうけどさ。
こういったハマりは経験がモノを言うという、開発における重点は いかにハマリを少なくするかだと思う。
ハマればどんどん深みに、蟻地獄です