TypeError: can't access dead object

Fehlermeldung

TypeError: can't access dead object

Fehlertyp

Was ist falsch gelaufen?

Um die Speichernutzung zu verbessern und SpeicherlĂŒcken zu vermeiden, verbietet Firefox Add-Ons Referenzen in das DOM Objekt zu speichern, nachdem das Elterndokument zerstört wurde. Ein totes Objekt hĂ€lt eine starke Referenz zu einem DOM-Element, welche nach nach dem Zerstören in DOM existiert. Um dieses Problem zu vermeiden, sollte statt der Referenz zu einem DOM-Knoten im fremden Dokument die Referenz in einem Objekt, welches im Dokument selbst spezifiziert ist gespeichert werden und gesĂ€ubert werden, wenn das Dokument nicht mehr geladen ist, oder als weak Referenz gespeichert werden.

PrĂŒfen, ob ein Objekt tot ist

Components.utils hat ein isDeadWrapper() Methode, welche in privilegiertem Quelltext verwendet werden sollte.

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

Nicht privilegierter Quelltext hat keinen Zugriff auf Component.utils und sollt deswegen einfach den Fehler abfangen.

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

Siehe auch