2010-01-30 4 views

Répondre

72
window.opener.$("#serverMsg") 
+0

Fonctionne uniquement si JQuery est actif dans l'ouvreur, je pense. –

+1

oui, bien sûr ... – roman

+0

parfait, merci! –

16

Si vous êtes dans une po-up et que vous voulez accéder à la fenêtre d'ouverture , utilisez window.opener. Le plus simple serait si vous pouviez charger JQuery dans la fenêtre parent ainsi:

window.opener.$("#serverMsg").html // ceci utilise JQuery dans la fenêtre parent

ou vous pouvez utiliser de vieux document.getElementById plaine pour obtenir l'élément, puis étendre en utilisant le jquery dans la fenêtre de votre enfant. Ce qui suit devrait travail (je ne l'ai pas testé, cependant):

element = window.opener.document.getElementById("serverMsg"); 
element = $(element); 

Si vous êtes dans un iframe ou frameset et que vous voulez accéder au cadre parent, utilisez window.parent au lieu de window.opener. Selon la politique de même origine, tout ceci fonctionne sans effort seulement si l'enfant et la fenêtre parent sont dans le même domaine.

7

ou vous pouvez utiliser une autre approche:

$("#serverMsg", window.opener.document) 
+0

Je préfère cette approche car elle ne repose pas sur la fenêtre d'ouverture ayant jQuery - bien qu'elle aura probablement jQuery de toute façon. –

0

Voici une réponse plus littérale (fenêtre parent par opposition à ouvre-boîte) à la question initiale qui peut être utilisé dans un iframe, en supposant que le domaine nom dans l'iframe correspond à celui de la fenêtre parente:

window.parent.$("#serverMsg") 
Questions connexes