MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

TypeError: can't access 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");
}

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,