Объект "недоступен" в консоли 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

В настоящее время существует четыре решения:

  1. Используйте console.log(JSON.stringify(variable, null, 4)) вместо console.info(variable). Это имеет дополнительное преимущество - обнаружение ошибок, вызванных ошибками управления памятью любого типа, но это может вызвать циклическую избыточность реальных элементов при интерполяции родительских/дочерних элементов. Оригинальное решение от меня.

  2. Используйте веб-консоль Firefox (control+shift+K или Tools->Web Developer->Web Console) вместо стандартной консоли браузера Firefox (control+shift+J или Tools->Web Developer->Browser Console). Спасибо Panos Astithas за предоставление этой информации!

  3. Отключить e10s в конфиге FF. Перейти about:config в качестве адреса в Firefox и установите для browser.tabs.remote.autostart или loop.remote.autostart значение false. Спасибо Janekptacijarabaci за предоставление этой информации!

  4. Верните свою версию 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