Как я дамп JavaScript vars в IE8?


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

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

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

LOG: Element: [object Object]

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

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

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

11 70

11 ответов:

Вот один прием, который я нашел полезным:

  • Откройте Панель инструментов разработчика (нажмите F12)
  • перейдите на вкладку "скрипт"
  • Нажмите кнопку "начать отладку"
  • Далее введите "debugger" в консоль и нажмите enter. Это должно вызвать точку останова.
  • перейдите на вкладку "Watch"
  • щелкните строку с надписью: "Нажмите, чтобы добавить...- и введите переменную, которую вы хотели бы изучить. Обратите внимание, что переменная должна быть глобально доступна.
  • в этот момент Вы должен быть в состоянии изучить вашу переменную с древовидным UI
  • после завершения отладки нажмите кнопку Продолжить (или нажмите F5)

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

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

Если вы имеете дело с неприятным кодом и консолью.журнал недоступен, попробуйте сделать это в консоли:

out = []; for (i in your_object) { out.push(i) } out.join("\n")

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

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

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

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

Его работа на моей системе.

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

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

Введите описание изображения здесь

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

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

 console.log( testNode.outerHTML.replace(testNode.innerHTML,"") ); 

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

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

var str = JSON.stringify(myObject);
$('#existing-element').text(str); // jQuery or
document.querySelector("#existing-element").innerHTML = str; // native JavaScript

Консоль.журнала(элементе.toString ()) может быть вашим другом здесь...