火狐控制台中的对象“不可用”

16

我有几个带有 class='class_name' 的div,同时也已经声明了

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

Chrome控制台显示:

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

Firefox控制台显示:

<unavailable>

问题出在哪里?或者可能的原因是什么?


Translated text:

问题出在哪里?或者可能的原因是什么?


1
添加 Firefox 版本。这里还有一段代码片段: - Sagar V
曾经在使用Firefox + Firebug时遇到过类似的问题。结果发现Firebug已经不再维护了,只能切换到Firefox开发者版才能再次获得可用的控制台。 - JiFus
@Sagar V7 - Firefox版本是52.0.2(32位)- 请解释一下您所说的“片段”的含义?能否提供在Fiddle或类似工具中的工作示例? - br00x
@JiFus - 感谢您的建议 - 奇怪的是,控制台日志中的许多其他日志都正常显示。 - br00x
@br00x 我也是这样,只是说你可能想试一下。当然也可能是另一个问题。 - JiFus
我已经在Chrome和Firefox(48&54)中尝试过了 - 一切都很好。我在两种情况下都使用了浏览器的控制台。 - curveball
2个回答

8
目前有四种解决方案:
  1. 使用 console.log(JSON.stringify(variable, null, 4)) 替代 console.info(variable)。这个方法有一个额外的优点,可以捕获由任何类型的内存管理错误引起的错误,但在插入父/子元素时可能会导致循环冗余。原解决方案由我提出。

  2. 使用 Firefox Web Console(control+shift+K,或者 工具->Web开发者->Web控制台)代替标准的Firefox浏览器控制台(control+shift+J,或者 工具->Web开发者->浏览器控制台)。感谢Panos Astithas提供此信息!

  3. 在Firefox配置文件中禁用e10s。在浏览器中输入 about:config,并将 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版本59.0.2和59.0.3仍然存在此问题。


OP一开始就没有使用Firefox 57,所以更改4个版本是一个猜测。 - TylerH
@TylerH:我注意到了,但还是谢谢你。=)无论如何,你试过我的解决方案了吗?还是你遇到了这个问题? - HoldOffHunger

7

两种可能的解决方法:

1) 使用“Web-Console”。
使用“Web-Console”(而不是“Browser-Console”,快捷键为CtrlShiftJ),可以显示预期的输出。

2) 禁用“e10s”多进程支持:

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

如果禁用了e10s,浏览器控制台将显示预期的输出。

回顾(2018年2月1日):

问题仍然存在于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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接