11214


（諸般の事情で該当のコードなどを提示することができないのですが、問題解決のために必要であれば別途用意いたします）

表題の通り、InternetExplorer 11 において、開発者ツールを立ち上げていないと期待した挙動をしない問題に直面しております。

いずれも JavaScript の絡んだ処理でしたので、ドキュメントモードなどが原因かと思いましたが、 meta
タグを用いて以下のようにドキュメントモードを明示的に指定しても期待した動きになりませんでした。

[code]

    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    
[/code]

開発者ツールを立ち上げると、リロードもせずに期待した動きをするようになります。  
問題の切り分け、原因として何が考えられるでしょうか。

なお、 Firefox、GoogleChrome ではとくに問題なく動作いたします。

追記：ご指摘をうけ、利用している JavaScript のライブラリ、フレームワークを追記しました。

  * jQuery 2.1.4
  * Backbone.js 1.2.1
  * Marionette.js 2.3.1
  * lodash.js 3.8.0

追記2：調査を進めた結果、サーバーに問い合わせが発生する箇所で、本来サーバーに記録されるログすらも生成されていないことが判明しました。  
これらは全て Ajax 通信によるやりとりのもので、やはり開発者ツールを立ち上げると正常にログが記録されておりました。


CC BY-SA 3.0
2015-06-10T05:46:33.743
11204
2022-06-17T09:23:34.553
2015-06-11T01:18:45.797
5827
5827
question
javascript html5 ajax backbone.js
IE11 で開発者ツールを起動していないと ConsoleAPI や Ajax 通信が期待した挙動をしない


[IE11でドキュメントモードが使用されるときのフローチャート](https://web.archive.org/web/20150926213022/http://blogs.msdn.com:80/b/ie_jp/archive/2015/05/25/10616897.aspx)がわかりやすいでしょうか。X-UA-
Compatible meta tagでの指定はIE=8までとされています。  
IE11でのedgeモードは

[code]

    <!doctype html>
    
[/code]

での宣言となります。またその際、ローカルの互換表示一覧とイントラネット設定の影響も受けます。


CC BY-SA 4.0
2015-06-10T06:18:35.693
11208
2022-06-17T09:23:34.553
2022-06-17T09:23:34.553
19769
4236
11204
answer


手元にIE11が無いので、確認はできていないのですが、以前にIE9でconsole.logを使った時に、consoleオブジェクトがundefinedでエラーになることがありました。

console.logに対応していない場合は,
ロード時にとりあえずconsoleオブジェクトとconsole.log関数を生成してエラーにはしないようにすることで対応ができました。

[code]

    (function () {
        if (typeof window.console === "undefined") {
             window.console = {}
        }
        if (typeof window.console.log !== "function") {
             window.console.log = function () {}
        }
    })();
    
[/code]

参考サイト  
<http://qiita.com/1987yama3/items/c761cfc241033ffbfab5>


CC BY-SA 3.0
2015-06-10T06:29:44.413
11210
2015-06-10T06:29:44.413
9529
11204
answer


超ローテクになりますが、正常に動作するところまで、怪しい部分をコメントアウトして、原因の箇所を特定するという方法はいかがでしょうか？

正常に動作するところから少しずつ、コメントを外してコードを追加していけば、エラーの箇所が特定できます。

どこが悪いか皆目検討がつかない時につかえる手法です。


CC BY-SA 3.0
2015-06-10T06:33:27.593
11211
2015-06-10T06:33:27.593
9529
11204
answer


> 開発者ツールを立ち上げていないと期待した挙動をしない問題

この部分がどの様な現象かわからないので、推測になりますが...

> サーバーに問い合わせが発生する箇所で、本来サーバーに記録されるログすらも生成されていない

IEのajaxのキャッシュの問題ではないでしょうか？

[code]

    $.ajaxSetup({
        cache: false, // こいつを追加
    });
    
[/code]

参考サイト  
<http://www.tailtension.com/jquery/1384/>  
<http://nobnoob.hatenablog.com/entry/2013/03/10/080419>  
他にも「ie ajax キャッシュ」で検索すると沢山出てきます。


CC BY-SA 3.0
2015-06-10T08:05:13.850
11214
2015-06-10T08:05:13.850
9529
11204
answer