Подтвердить что ты не робот

Какие браузеры поддерживают console.log()?

Поддерживаются ли все браузеры? Я хотел бы вывести ошибку, используя console.log(), но задавался вопросом, поддерживается ли это всеми браузерами?

console.log("Error etc");
4b9b3361

Ответ 1

Нет, не все браузеры поддерживают console.log, поскольку он не является частью стандарта и является расширением DOM, и поэтому вы не должны рассчитывать на его присутствие. Чтобы сделать ваш код устойчивым, вы должны предположить, что он не существует и код соответственно.

Ответ 2

В прошлом я делал что-то вроде этого:

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

Вы можете поместить это в "верх" вашего JS, и он работает очень хорошо, когда вы вынуждены выполнять отладку с браузером, который не поддерживает console, и не требует, чтобы вы меняли другого источника JS, который уже вызывает console.log повсюду. Конечно, вы можете захотеть сделать что-то другое, кроме alert, чтобы сохранить свое правоту...

http://jsfiddle.net/4dty5/

Ответ 3

Большинство браузеров делают, однако Internet Explorer 9 имеет проблемы с ним, где он не запускает какой-либо javascript, если у вас нет окна отладки. Потребовались часы, чтобы найти решение этой проблемы.

Ответ 4

Сделайте функцию обертки:

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

Ответ 5

Сейчас август 2015 года, и я думаю, что текущий ответ на этот вопрос:

Все основные браузеры для мобильных и настольных компьютеров console.log. (caniuse)

Он не является частью какого-либо стандарта, но теперь он является ожидаемым результатом полного современного браузера.

Однако:

Если вам необходимо поддерживать старые браузеры (IE < 10), больше мобильных браузеров или пользователей, работающих с экспериментальными браузерами, тогда может быть хорошей идеей использовать polyfill (1, 2, 3, 4), чтобы обеспечить window.console.

Он может не работать в WebWorkers во всех браузерах. (MDN)

В Opera Mini функции будут запущены, но вы не увидите результат. (caniuse)

Но для подавляющего большинства пользователей Интернета, мы можем предположить, что console.log будет работать как ожидалось.

Ответ 6

Этот код проверяет, существует ли эта функция и создает фиктивный файл, если это не так. Кредит: fooobar.com/questions/5801/...

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

Ответ 7

Вот обходной путь, когда 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);
    };
  }

Ответ 8

Хотя не все браузеры поддерживают это, это может быть выполнено с небольшим количеством кода.

В своей книге "Тайны Javascript Ninja" Джон Ресиг (создатель 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, " "));
  }
}