Je débogue une application Web. Javasript dans une fenêtre crée un objet et l'utilise comme argument pour invoquer la méthode globale dans une autre fenêtre. Pseudo code est comme ci-dessous.Comment transférer en toute sécurité une référence à un objet à travers une fenêtre?
var obj = new Foo();
anotherWin.bar(obj);
Dans anotherWin, l'argument est stocké dans la variable globale.
var g_obj;
function bar(obj)
{
g_obj = obj;
...
}
Quand autre fonction essaie de référencer g_obj.Id, il émet une exception "Impossible d'évaluer l'expression". Cela se produit dans IE8.0.7600.16385 sous Windows 7.
Débogueur Visual Studio, lorsque cette exception se produit, les g_obj montre que
{...}
Il semble toutes ses propriétés sont perdues.
Peut-être que la raison racine est que l'objet est créé dans une fenêtre mais seulement référencé dans une autre fenêtre. L'objet peut être récupéré à tout moment.
Y at-il un moyen de contourner ce problème?
Ces fenêtres se trouvent-elles dans un jeu de cadres? –
Non, pas dans le jeu de cadres. –