2010-01-30 16 views

Odpowiedz

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

Działa tylko wtedy, gdy JQuery jest aktywny w otwieraczu, tak myślę. –

+1

tak, oczywiście ... – roman

+0

idealne, dziękuję! –

16

Jeśli jesteś w PO-up i chcesz uzyskać dostęp do okna otwarcia, użyj window.opener. Najłatwiej byłoby, gdyby można było załadować JQuery w oknie nadrzędnym, a także:

window.opener.$("#serverMsg").html // ta używa JQuery w oknie nadrzędnym

czy można używać zwykłego starego document.getElementById uzyskać element, a następnie rozszerzyć za pomocą jquery w twoim oknie podrzędnym. Poniższy powinien pracy (ja jej nie testowane, choć):

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

Jeśli jesteś w iframe lub ramek i chcesz uzyskać dostęp do ramki nadrzędnej, należy window.parent zamiast window.opener.

Zgodnie z Polityką Same Origin wszystko to działa bez wysiłku tylko wtedy, gdy okno potomne i okno nadrzędne znajdują się w tej samej domenie.

7

lub można użyć innego podejścia:

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

Preferuję to podejście, ponieważ nie opiera się ono na oknie otwierającym mającym jQuery - mimo to prawdopodobnie i tak będzie miało jQuery. –

0

Oto bardziej dosłowna odpowiedź (okno nadrzędne w przeciwieństwie do otwieracz) do pierwotnego pytania, które mogą być wykorzystane w ramach iframe, zakładając domenę nazwa w elemencie iframe pasuje do okna nadrzędnego:

window.parent.$("#serverMsg") 
Powiązane problemy