2013-02-04 20 views
19

Win8でIE10を使い始めたばかりで、問題が発生しました。開発者ツールコンソールは、ドキュメントモードが標準に設定されていると動作しないようです。私はブラウザモードとドキュメントモードの両方で遊んだことがあり、コンソールはIE9標準として設定すると機能しますが、コンソールをIE10のデフォルトである "Standards"に設定すると、定義されていません。何か案は?IE10 console.log not working

これは重複していません。テストの際、開発者コンソールが開いています。 DocモードをIE9標準に切り替え、再ロードするとコンソール出力が期待どおりに表示されます。 IE10標準に戻すとコンソール出力は表示されません。デバッグはコンソールが未定義であることを示します。したがって、未定義を処理するためにconsole.logを空の関数に設定します。私はIE10標準モードでコンソールが未定義になっている理由について興味があります。

私はVirtualBoxでWin8を実行しています。私のページは適切なdoctypeを持つHTML4マークアップです。

+9

ページが読み込まれたら*開発者ツールが開かれている必要があります*。 [こちら](http://stackoverflow.com/questions/10415519/does-ie9-enable-something-when-using-developer-tools/10415712#10415712) – jbabey

+0

ページが読み込まれると、開発ツールが開きます。 – James

+0

ページを開き、F12キーを押して開発者ツールを開き、F5キーを押してページをリロードすると、 'console'はまだ' undefined'と表示されますか? – jbabey

答えて

5

これを定義してください!

if (typeof console == "undefined") { 
    this.console = {log: function() {}}; 
} 

を参照してください:それは標準モードがどのように動作するかだから'console' is undefined error for Internet Explorer

+0

OPがこの回避策を認識しているようですが、なぜ特定のモードで 'console.log'が正しく動作しないのか不思議です。 – jahroy

+0

これはすでに完了しています。注:デバッグではコンソールが未定義であるため、console.logを空の関数に設定して未定義を処理していることを示しています。 – James

7

console.log();が定義されていない理由はあります。 IE 8は文字通りIE 7に変わる互換モードを持ち、IE 8に追加された機能のすべての理解を取り除いています。コンソールはIE 10で追加されていますので、標準モードで実行するとエラーをスローすることになります。

<head> 
    <title>Force IE 10</title> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
</head> 

このメタタグは、IEをインストールした最新のバージョン(標準と互換性モードを無効にする)で強制的に実行されます。これは、標準モードでIE 10でコンソールを定義する唯一の方法です。標準モードを無効にすることによって可能です。

+2

Microsoftは、IE = edgeはHTML5のdoctypeを使用するのと機能的に同等であると説明しています。だから<!DOCTYPE html>で十分です。 http://msdn.microsoft.com/en-US/library/jj676915.aspx –

+5

を参照してください。どの惑星で「意味があるのですか?意味をなさないことは、マイクロソフトが実際の "標準"に準拠しない恐ろしいブラウザを作成することです。 –

+3

IE 8がエラーを処理する方法のため意味があります。それはちょうどそのJavaScriptの残りの部分をクラッシュさせます。 'console.log()'をjQueryファイルの先頭に置くと、jQueryがページにロードされなくなります。 IE 10を標準モードで正常に終了させると、IE 8とは機能が異なることになります。 また、tanguy_kでは、 '<!DOCTYPE html>'はIE 9以降をデフォルトで 'loose.dtd'にします'transitional.dtd'である、私は忘れています)、ページのCSSが壊れる可能性があります。 – Andrew