在线文档教程
JavaScript
错误 | Errors

Errors: Dead object

Errors: Dead object

信息

TypeError: can't access dead object

错误类型

TypeError

什么地方出了错?

为了提高内存使用率并防止内存泄漏,Firefox不允许附加组件在其父文档被销毁后保留对DOM对象的强引用。一个死对象,持有一个强壮的(保持活着)的DOM元素的引用,即使它在DOM中被销毁之后仍然存在。为了避免这些问题,引用外部文档中的DOM节点应该存储在特定于该文档的对象中,并在文档被卸载时被清除,或者被存储为弱引用

检查一个对象是否死亡

Components.utils提供了一个isDeadWrapper()特权代码可能使用的方法。

if (Components.utils.isDeadWrapper(window)) { // dead }

无特权的代码无法访问Component.utils,可能只是能够捕获异常。

try { String(window } catch (e) { console.log("window is likely dead" }