-1

console-object を使用する JavaScript プロジェクトをテストする必要があります。だから私はIE10からIE8にダウングレードしますが、私の環境テストケースが他の人にとって「安全」であるかどうかはわかりません。

このInternet Explorer でコンソール ログを使用するにはどうすればよいですか? Developertools(F12)なしでconsoleあると言います。undefinedしかし、私の現在の経験では、console.logF12 がアクティブかどうかに関係なく、常に利用可能です。

この記事では、それらは完全に有効になっていると述べています。この記事では、コンソールは IE8 では定義されていません。

IE8 != IE8 のようです。IE、Firefox、Opera、Safari でページをテストするだけで十分ではないでしょうか?

<html>
<body>
<script>
document.write('Console is <b>' + typeof console + '</b>! <br />');
document.write('Even console.log is <b>' + typeof console.log + '</b>!<br />');
document.write(window.navigator.userAgent);
</script>
</body>
</html>

スクリーンショット

4

1 に答える 1

1

コンソールが未定義であることについて: これは本当です。IE8 および IE9 はconsole、F12 開発ツールが開かれたときにのみオブジェクトを定義します。開発ツールが開かれていない場合、consoleオブジェクトは未定義であり、致命的なエラーがスローされます。

この質問に対する私の回答も参照してください: IE で開発者ツールを一度開いた後にのみ JavaScript が機能するのはなぜですか?

これにはさまざまな方法がありますが、最善の解決策はconsole、実稼働コードでオブジェクトを使用しないことです。consoleオブジェクトは Web 標準ではないため、既存のオブジェクトに依存しないでください (実際には、オブジェクトを使用しない他のブラウザーが存在します)。consoleオブジェクトをまったく提供しない)。

本番コードでコンソールを使用する必要がある場合は、ページの読み込み時にコンソール用の shim を作成できます。このようなもの:

if(!window.console) {window.console={log:function(){}};}

これにより、致命的なエラーがスローされるのを防ぐことができます。

consoleしかし、実際には、実稼働コードに呼び出しを含めないことが最善の答えです。これは開発者ツールとして意図されているため、実際には開発コードでのみ使用する必要があります。

于 2013-07-18T12:54:54.600 に答える