2009-06-23 13 views
8

Ho una pagina HTML che apre un'altra pagina tramite JavaScript. Quando un utente fa clic su un pulsante nell'altra pagina, desidero pubblicare un messaggio in un DIV della pagina iniziale tramite JQuery. Non riesco a metterci un dito sopra, ma non riesco a farlo funzionare. Ecco la mia pagina di aperturaJQuery - Scrivi nella finestra dell'apertore

<html> 
    <head> 
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
    </head> 

    <body> 
    <input type="button" onclick="window.open('dialog.html', '_blank', 'height=200, width=300');" value="launch!" /> 
    <div id="testDiv"></div> 
    </body> 
</html> 

Quando l'utente fa clic su "Avvia!" pulsante, verrà visualizzata una finestra di dialogo. Il codice per la finestra di dialogo è il seguente:

<html> 
    <head> 
    <script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
    </head> 

    <body> 
    <input type="button" onclick="updateOpener()" value="Update Opener" /> 
    <script type="text/javascript"> 
     function updateOpener() 
     { 
     var testDiv = window.opener.jQuery("#testDiv"); 
     if (testDiv != null) { 
     alert("here"); 
     testDiv.html("Updated!"); 
     } 
     } 
    </script> 
    </body> 
</html> 

Sorprendentemente, viene visualizzata la finestra di avviso. Tuttavia, non riesco ad aggiornare l'HTML del DIV nella mia pagina iniziale. Qualcuno sa come fare questo?

+0

Il codice sopra riportato funziona per me. –

+0

L'ha appena corretto con la sua modifica. – montrealist

risposta

5

Stai facendo riferimento a "confirmDiv". Dov'è quel DIV?

+3

Questo era il problema dell'OP. Ha riparato il suo codice dopo questa risposta, e ora funziona. – Sev

0

Ummm, funziona per me in Firefox 3.0.11, IE8 e Chrome 2 ... (Ie il pulsante dialog.html aggiorna l'HTML nella pagina di apertura di dire 'Aggiornato!'.)

0

Stranamente , il tuo esempio funziona bene per me in Chrome, IE 8 e FireFox. Hai altri dettagli?

2

Non è possibile farlo se la pagina padre (l'apertura) risiede su un altro dominio. Altrimenti, il tuo codice funziona perfettamente.

Inoltre, il controllo! = Null probabilmente non sta facendo ciò che si pensa che stia facendo, poiché la funzione jQuery non restituisce mai null. Se stai verificando l'esistenza di un elemento, devi farlo in questo modo ...

var el = $("#myElementId"); 
if(el.length == 0) 
    alert('Not found!');