对象'不可用'在Firefox控制台中

时间:2017-07-28 12:15:58

标签: javascript html firefox getelementsbyclassname

我有一些class='class_name'的div,并且还声明了

var A = document.getElementsByClassName('class_name');
console.log(A[0]);

Chrome控制台显示:

<div class="class_name"> div 1 </div>

Firefox控制台显示:

<unavailable>

问题是什么或可能的原因是什么?

2 个答案:

答案 0 :(得分:5)

有两种解决方案:

(1)使用console.log(JSON.stringify(variable, null, 4))代替console.info(variable)。这具有捕获由任何类型的内存管理错误引起的错误的额外优势(并且出于这个原因通常建议仅通过console.info())。 (注意:对DOM元素变量不起作用,因为这会导致循环的无限递归错误。)

(2)卸载FireFox Quantum。我卸载了Firefox 57和59(&#34; Firefox Quantum&#34;),然后安装了Firefox版本56.0.2。这解决了我的问题。在此处获取:https://ftp.mozilla.org/pub/firefox/releases/56.0.2/

根据原始问题的日期,不是特定版本57导致此问题(因为它尚未发布)。但这是我的解决方案。

Firefox开发票证:https://bugzilla.mozilla.org/show_bug.cgi?id=1136995

更新:Firefox v.59.0.2仍然存在问题。

答案 1 :(得分:5)

两个可能的解决方法:

1)。使用“网络控制台”。
“ Web控制台”(而不是“ Browser-Console”)显示了预期的输出。

2)禁用“ e10s”多处理器支持:

- about:config
- browser.tabs.remote.autostart = False

如果禁用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>

浏览器控制台中的输出(错误的输出):

test
123
<unavailable>
<unavailable>
null
<unavailable>

Web控制台中的输出(按预期):

test
123
Array(3) [ 1, 2, 3 ]
Object { x: "x" }
null
<div id="myDiv">

另请参阅: https://bugzilla.mozilla.org/show_bug.cgi?id=1136995