Как я могу сбросить JavaScript JavaScript в IE8? - PullRequest
70 голосов
/ 24 декабря 2009

У меня есть объект, который мне нужно изучить в IE8. Я попробовал инструменты разработчика и console.log, их эквивалент Firebug. Однако, когда я вывожу объект в журнал:

console.log("Element: ", element);
console.log(element);

Я получаю только строку

LOG: Element: [object Object]

вместо кликабельного, проверяемого дампа.

Можно ли поместить объект в журнал и проверить его элементы, как в Firebug?

Я не могу использовать самодельную функцию dump (), потому что элемент, который я хочу исследовать, настолько велик, что браузер зависнет на мне.

Ответы [ 11 ]

101 голосов
/ 27 декабря 2009

Вот одна техника, которая мне показалась полезной:

  • Открыть панель инструментов разработчика (нажмите F12)
  • Перейти на вкладку «Сценарий»
  • Нажмите кнопку «Начать отладку»
  • Затем введите «отладчик» в консоли и нажмите Enter. Это должно вызвать точку останова.
  • Перейти на вложенную вкладку «Часы»
  • Нажмите на строку с надписью «Нажмите, чтобы добавить ...» и введите переменную, которую вы хотите проверить. Обратите внимание, что переменная должна быть доступна глобально.
  • К этому моменту вы сможете проверить свою переменную с помощью древовидного интерфейса
  • Как только вы закончите отладку, нажмите кнопку Продолжить (или нажмите F5)
92 голосов
/ 31 декабря 2009

Немного не по теме (так как он не работает для элементов DOM), но я нашел удобным использовать JSON.stringify (объект ), чтобы получить строку JSON для объекта, довольно читабельно.

13 голосов
/ 10 декабря 2012

@ Крис прокомментировал @ ответ Энди с простым решением: используйте console.dir(myObj), чтобы вывести все детали в консоль IE. Спасибо Крис!

5 голосов
/ 02 августа 2012

Если вы имеете дело с неприятным кодом и console.log недоступен, попробуйте это в консоли:

out = []; for (i in your_object) { out.push(i) } out.join("\n")
3 голосов
/ 11 августа 2011

Одно из предложений - использовать Firebug-Lite : Он оборачивает консоль obj, и вы можете увидеть результат в IE, как и в большинстве консолей Firebug. Надеюсь, что это поможет.

1 голос
/ 21 апреля 2017

Иллюстрированная версия превосходного ответа Хави:

enter image description here

1 голос
/ 15 июля 2016

Добавьте этот тег на вашей странице:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite-debug.js"></script>

И все будет работать.

Это работает в моей системе.

Примечание: попробуйте это решение.

0 голосов
/ 15 ноября 2016

Сбросить его в существующий элемент HMTL

Я заметил, что IE 11 удаляет строки консоли после 1027 символов: - / Когда мне нужно было выгрузить большой объект (12 000 символов), я поместил его в существующий элемент DIV-элемента TextArea-Element, откуда я мог скопировать содержимое.

var str = JSON.stringify(myObject);
$('#existing-element').text(str); // jQuery or
document.querySelector("#existing-element").innerHTML = str; // native JavaScript
0 голосов
/ 15 августа 2014

Немного коренастый, но он работает для объектов DOM:

 console.log( testNode.outerHTML.replace(testNode.innerHTML,"") ); 
0 голосов
/ 21 октября 2013

Я знаю, что это действительно старый вопрос, но я искал ответ на этот вопрос только сейчас. Если это не является абсолютным требованием для использования консоли IE (что не очень хорошо, IMO), то вы можете рассмотреть вопрос об использовании Firebug Lite (http://getfirebug.com/firebuglite).). Это не идеальное решение, и вы можете не захотеть выдвигать это Скрипт для вашей производственной среды, и он не такой полнофункциональный, как Firebug, но он довольно хорош в крайнем случае, когда вам приходится много работать с недорогим браузером, таким как IE.

...