Internet Explorerでコンソールログを使用するにはどうすればよいですか?


119

IE用のコンソールロガーはありますか?一連のテスト/アサーションをコンソールに記録しようとしていますが、IEではこれを実行できません。


8
気を付けて!console.log()IEの開発ツールが開いているときにのみ機能します(そう、IEはひどいです)。stackoverflow.com/questions/7742781/…を
Adrien Be

1
クロスブラウザーラッパーを使用:github.com/MichaelZelensky/log.js
Michael Zelensky

回答:


147

IE8スクリプトコンソールにアクセスするには、「開発者ツール」(F12)を起動します。[スクリプト]タブをクリックし、右側の[コンソール]をクリックします。

JavaScriptコード内から、次のいずれかを実行できます。

<script type="text/javascript">
    console.log('some msg');
    console.info('information');
    console.warn('some warning');
    console.error('some error');
    console.assert(false, 'YOU FAIL');
</script>

また、を呼び出してコンソールをクリアすることもできますconsole.clear()

注:最初に開発者ツールを起動してからページを更新する必要があります。


これはIE8 +専用ですが、すばらしいコンソールです。これは基本的にはFirebugのレプリカであり、他のいくつかの機能が組み込まれたいくつかの機能がありません。MSDNで検索してください。
ケン

2
ああ、Firebugに達していなくても、必要なものはまだ十分あります。ありがとう!
ground5hark 2010


73
IEでは、Firefoxとは異なり、開発者ツールがアクティブでない場合、window.consoleが未定義であり、呼び出しconsole.log()が中断することに注意してください。常にあなたの電話を守るwindow.console && console.log('stuff');
Guss

1
それでもだれもそれを見つけられない場合は、私がしたことをせずに、ウィンドウの上部にスクリプトを入力してください。入力領域は、実際にはDeveloper Tools Consoleウィンドウの下部にあるテキスト領域/バーです。 。
starmandeluxe 2013

24

バージョン8以降、Internet Explorerには他のブラウザーと同様に独自のコンソールがあります。ただし、コンソールが有効になってconsoleいない場合、オブジェクトは存在せず、を呼び出すとconsole.logエラーがスローされます。

別のオプションは、log4javascript(完全な開示:私が書いたもの)を使用することです。これには、IE> = 5を含むすべてのメインストリームブラウザーで機能する独自のロギングコンソールと、未定義の問題を回避するブラウザー独自のコンソールのラッパーがありconsoleます。


ああ..数ヶ月私は似たようなものを書いた。いい仕事だ!
tftd

@ティムダウンそれのための回避策がありますstackoverflow.com/a/13817235/3057246
Vinod Srivastav

14

本番環境でconsole.log()を使用する場合は非常に重要です。

console.log()コマンドを本番環境にリリースする場合は、IEに何らかの修正を加える必要があります。これconsoleは、F12デバッグモードでのみ定義されるためです。

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

[明らかにアラートを削除します(msg); 機能することを確認したら、ステートメント]

参照してください。「コンソール」は、Internet Explorer用の未定義エラーで他のソリューションと詳細について



5

他のブラウザの行番号を保持するシンプルなIE7以下のシム:

/* console shim*/
(function () {
    var f = function () {};
    if (!window.console) {
        window.console = {
            log:f, info:f, warn:f, debug:f, error:f
        };
    }
}());

3

彼の著書「Secrets of Javascript Ninja」で、John Resig(jQueryの作成者)は、クロスブラウザーconsole.logの問題を処理する非常に単純なコードを持っています。彼は、すべてのブラウザで機能するログメッセージが必要であることを説明し、以下にそのコードを示します。

function log() {
  try {
    console.log.apply(console, arguments);
  } catch(e) {
  try {
    opera.postError.apply(opera, arguments);
  }
  catch(e) {
    alert(Array.prototype.join.call( arguments, " "));
  }
}

ジョン・レジグです。あなたは "Resign"を書いた、LOL
rvighne

1
}そのスニペットに欠落があります。:)
Nighto

2

IE8またはコンソールのサポートがconsole.logに制限されている場合(デバッグ、トレースなどはありません)、以下を実行できます。

  • コンソールまたはconsole.logが未定義の場合:コンソール関数(トレース、デバッグ、ログなど)のダミー関数を作成します。

    window.console = { debug : function() {}, ...};

  • そうでない場合、console.logが定義されていて(IE8)、console.debug(その他)が定義されていなければ、すべてのロギング機能をconsole.logにリダイレクトします。これにより、これらのログを保持できます。

    window.console = { debug : window.console.log, ...};

さまざまなIEバージョンでのアサートサポートについては不明ですが、提案は大歓迎です。



0

IEの以前のバージョン(IE8より前)では、IE開発者ツールバーにコンソールログを表示するのは簡単ではありません。時間をかけて多くの異なるソリューションを試した後、最後に、次のツールバーは私にとって素晴らしいツールです。

これの主な利点は、IE6またはIE7にコンソールを提供することです。これにより、コンソールログでエラーの内容を確認できます。

  • 注意:
  • これは無料
  • ツールバーのスクリーンショット

ここに画像の説明を入力してください


0

私はいつもこのようなことをしてきました:

var log = (function () {
  try {
    return console.log;
  }
  catch (e) {
    return function () {};
  }
}());

その時点から、常にlog(...)を使用するだけで、console。[warn | error |など]を使用して気を抜かないでください。単純にしてください。私は通常、シンプルなソリューションを好み、外部ライブラリを空想します。

IEの問題を回避する簡単な方法(存在しないconsole.log)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.