IE11の互換表示で開発者ツールでのデバッグ時と通常時(開発者ツールを開いていない場合)における挙動の違い
- 状況
- IE11、互換表示モード、F12で開発者ツールを開いた状態だと動く
- IE11、互換表示モード、F12で開発者ツールを閉じた状態だと動かない
- Google Chromeだと動く
cashe:false や自前でGETのパラメータを追加しても、動かない状況は変わらない
- 要因と対応
- 困ったな〜 とネットで検索したけど原因つかめず。
- 1日経過した後、検索ワード変えて、見ると以下がヒットした
- IE11 で開発者ツールを立ち上げていないと ConsoleAPI や Ajax キャッシュ問題で稀によくしぬ話
- 1日経過した後、検索ワード変えて、見ると以下がヒットした
-
-
- IE11 で開発者ツールを起動していないと ConsoleAPI や Ajax 通信が期待した挙動をしない
-
同じ原因だった。
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ファイルに追加して対応した。
互換表示って、かゆいところに届いているんだろうけどさ。
こういったハマりは経験がモノを言うという、開発における重点は いかにハマリを少なくするかだと思う。
ハマればどんどん深みに、蟻地獄です