2009-11-12 6 views
0

Voici mon scénario: J'ai une page web parent, dans mon code javascript J'ouvre une nouvelle fenêtre. Cette nouvelle fenêtre est une page ASPX côté serveur. Cette page enfant doit enregistrer certaines données dans la base de données et, après l'avoir enregistrée, renvoie un identifiant. Maintenant, je dois passer cet ID de la page du serveur enfant au javascript du parent.Passer une valeur de la fenêtre enfant au parent

Essentiellement, je besoin du code de serveur enfant à déclencher: 1) renvoient la valeur du code JavaScript de la page parent 2) se fermer

Quelle serait la façon acceptable de le faire?

Répondre

1

Définir une variable dans la page parent:

var dbID; 

Quand l'appel retourne DB de la fenêtre ouverte, placez-le dans l'événement load de la fenêtre ouverte (ou événement ready si vous utilisez jquery ou un autre framework):

window.opener.dbID = <%= newID %> 
// or whatever your framework's technique is for this :-) 
window.close(); 

Vous pouvez également appeler une fonction globale sur le parent en utilisant la même technique.

la page "parent":

function handleNewDBID(dbID) { alert("lookit me, i got an ID! " + dbID); } 

Et sur la fenêtre ouverte:

window.opener.handleNewDBID(<%=newID%>); 
+0

Comment puis-je distinguer que "lorsque les déclarations d'appel de DB de la fenêtre ouverte" dans Jquery? Bien sûr, je peux vérifier si newID est nul ... c'est ce que vous vouliez dire? – sarsnake

+0

Réponse modifiée pour afficher à l'aide d'une fonction globale. Votre code JQuery peut vivre à l'intérieur de cela. (Je ne pense pas qu'il existe un moyen plus simple de le faire sans rendre la fonction globale.) – roufamatic

0

Si vous êtes dans la fenêtre de l'enfant et en supposant que votre fenêtre parent a objet childResult:

window.opener.childResult = "yourIdHere"; 
Questions connexes