web-dev-qa-db-ja.com

どのブラウザがconsole.log()をサポートしていますか?

すべてのブラウザがこれをサポートしていますか? console.log()を使用してエラーを出力したいのですが、これがすべてのブラウザーでサポートされているかどうか疑問に思いましたか?

console.log("Error etc");
28
KingKongFrog

いいえ、すべてのブラウザがconsole.logをサポートしているわけではありません。これは、標準の一部ではなく、DOMの拡張であるため、その存在を当てにすべきではないためです。コードを弾力性のあるものにするためには、それがしないであると想定し、それに応じてコーディングする必要があります。

13
Aaron McIver

私は過去にこのようなことをしました:

// Log to native console if possible, alert otherwise
window.console = typeof window.console === 'undefined'
    ? {log:function(/* polymorphic */){alert(arguments)}}
    : window.console;

あなたはそれをあなたのJSの「トップ」に置くことができ、consoleをサポートしないブラウザでデバッグを強制され、そしてあなたが既にconsole.logを呼び出している他のJSソース。もちろん、正気を保つためにalert以外のことをしたいかもしれません...

http://jsfiddle.net/4dty5/

12
Madbreaks

現在2015年8月です。この質問に対する現在の答えは次のとおりです。

モバイルおよびデスクトップ上のすべての主要ブラウザはconsole.logをサポートしますcaniuse

これは標準の一部ではありませんが、完全な最新ブラウザの期待される成果物です。

しかしながら:

古いブラウザー( IE <1 )、より多くのモバイルブラウザー、または実験的なブラウザーを実行しているユーザーをサポートする必要がある場合は、ポリフィル( 1 を使用することをお勧めします。 、 2 、、 4 )を確認してwindow.consoleが存在します。

すべてのブラウザーのWebWorkersでは機能しない可能性があります。 ( [〜#〜] mdn [〜#〜]

UCブラウザとOpera Miniでは、関数は実行されますが、出力は表示されません。( caniuse

しかし、現在、大多数のWebユーザーは、console.logは期待どおりに動作します。

9
joeytwiddle

ラッパー関数を作成します。

function log(text) {
  if (window.console) {
     window.console.log(text);
  }
}
8
asgoth

このコードは、関数が存在するかどうかを確認し、存在しない場合はダミーを作成します。クレジット: StackOverflow

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

ほとんどのブラウザーは動作しますが、Internet Explorer 9には問題があります。デバッグウィンドウを開いていない限り、JavaScriptが実行されません。その問題の解決策を見つけるのに何時間もかかった。

7
Menztrual

console.log()が使用できない場合の回避策を次に示します。 console.logsを自分で取得する必要があります。

  if (!window.console) window.console = {};
  if (!window.console.log) 
  {
    window.console.logs = [];
    window.console.log = function (string)
    {
      window.console.logs.Push(string);
    };
  }
1
Sprout Coder

すべてのブラウザでサポートされているわけではありませんが、小さなコードで実現できます。

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

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