Объект "недоступен" в консоли Firefox
У меня есть несколько div с class='class_name'
, а также объявили
var A = document.getElementsByClassName('class_name');
console.log(A[0]);
Консоль Chrome показывает:
<div class="class_name"> div 1 </div>
Консоль Firefox показывает:
<unavailable>
Какая проблема или что в противном случае является возможной причиной?
Ответы
Ответ 1
В настоящее время существует четыре решения:
-
Используйте console.log(JSON.stringify(variable, null, 4))
вместо console.info(variable)
. Это имеет дополнительное преимущество - обнаружение ошибок, вызванных ошибками управления памятью любого типа, но это может вызвать циклическую избыточность реальных элементов при интерполяции родительских/дочерних элементов. Оригинальное решение от меня.
-
Используйте веб-консоль Firefox (control+shift+K
или Tools->Web Developer->Web Console
) вместо стандартной консоли браузера Firefox (control+shift+J
или Tools->Web Developer->Browser Console
). Спасибо Panos Astithas за предоставление этой информации!
-
Отключить e10s в конфиге FF. Перейти about:config
в качестве адреса в Firefox и установите для browser.tabs.remote.autostart
или loop.remote.autostart
значение false. Спасибо Janekptacijarabaci за предоставление этой информации!
-
Верните свою версию FireFox Quantum. Я удалил Firefox 57 и 59 ("Firefox Quantum"), а затем установил Firefox версии 56.0.2. Это решило проблему для меня. Получите это здесь: https://ftp.mozilla.org/pub/firefox/releases/56.0.2/ Первоначальное решение от меня.
Билет для разработки Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1136995
ОБНОВЛЕНИЕ: Проблема сохраняется с Firefox v. 59.0.2 и v. 59.0.3.
Ответ 2
Два возможных обходных пути:
1) Используйте "Веб-консоль".
"Веб-консоль" (вместо "Браузер-консоль") показывает ожидаемый результат.
2) Отключить поддержку мультипроцессора "e10s":
- about:config
- browser.tabs.remote.autostart = False
Browser-Console покажет ожидаемый результат, если e10s отключен.
Резюме (02.01.2018):
Проблема все еще сохраняется в FF 64.0:
в общем случае объекты будут отображаться как "недоступные" в браузере-консоли.
Воспроизвести (e10s включен):
<html><head>
<script type="text/javascript">
console.log( 'test' );
console.log( 123 );
console.log( [ 1, 2, 3 ] );
console.log( { x: 'x' } );
console.log( document.getElementById('myDiv') );
window.onload = function() {
console.log( document.getElementById('myDiv') );
};
</script>
</head><body>
<div id="myDiv"></div>
</body></html>
Вывод в Browser-Console (неверный вывод):
test
123
<unavailable>
<unavailable>
null
<unavailable>
Вывод в веб-консоль (как и ожидалось):
test
123
Array(3) [ 1, 2, 3 ]
Object { x: "x" }
null
<div id="myDiv">
Смотрите также: https://bugzilla.mozilla.org/show_bug.cgi?id=1136995