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

Message

TypeError: can't access dead object

Type d'erreur

TypeError

Quel est le problème ?

Afin d'améliorer l'utilisation de la mémoire et de prévenir les fuites mémoire, Firefox empêche les modules complémentaires de conserver des références fortes vers les objets du DOM après que leur document parent ait été détruit. Un objet mort (dead) est un objet qui contient une référence forte vers un éléments du DOM, même après que celui-ci ait été détruit dans le DOM. Pour éviter ces problèmes, les références aux objets du DOM d'un document étranger devraient être enregistrées dans un objet spécifique à ce document et être nettoyées lors de la suppression du document. On peut également utiliser les objets qui permettent d'enregistrer des références faibles.

Vérifier si un objet est mort

Components.utils fournit une méthode isDeadWrapper() qui peut être utilisée par du code privilégié :

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

Du code sans privilège ne pourra pas accéder à Component.utils et pourra simplement intercepter l'exception :

try {
  String(window);
}
catch (e) {
  console.log("window est problablement mort ");
}

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,