2009-06-23 12 views
8

Tengo una página HTML que abre otra página mediante JavaScript. Cuando un usuario hace clic en un botón en la otra página, quiero publicar un mensaje en un DIV de la página de inicio a través de JQuery. No puedo entenderlo, pero parece que no puedo hacer que esto funcione. Aquí está mi página de aperturaJQuery - Ventana de escritura para abrir

<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> 

Cuando el usuario hace clic en "¡Iniciar!" botón, aparecerá un cuadro de diálogo. El código para el diálogo se ve así:

<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, aparece el cuadro de alerta. Sin embargo, no puedo actualizar el HTML del DIV en mi página de inicio. ¿Alguien sabe como hacer esto?

+0

El código anterior funciona para mí. –

+0

Acaba de arreglarlo con su edición. – montrealist

Respuesta

5

Estás haciendo referencia a "confirmDiv". ¿Dónde está ese DIV?

+3

Este fue el problema del OP. Reparó su código después de esta respuesta, y ahora funciona. – Sev

0

Ummm, a mí me funciona en Firefox 3.0.11, IE8 y Chrome 2 ... (Es decir, el botón dialog.html actualiza la página HTML en el primer partido de decir '¡Actualizada!'.)

0

Curiosamente , tu ejemplo funciona bien para mí en Chrome, IE 8 y FireFox. ¿Tienes algún otro detalle?

2

No puede hacer eso si la página principal (el abridor) reside en otro dominio. De lo contrario, tu código funciona perfectamente.

Además, su comprobación! = Null probablemente no está haciendo lo que cree que está haciendo, ya que la función jQuery nunca devuelve nulo. Si está buscando la existencia de un elemento, debe hacerlo de esta manera ...

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