2008-10-04 34 views

Respuesta

10

La referencia devuelta por window.open() es objeto de la ventana secundaria window. Por lo que puede hacer lo que haría normalmente, he aquí un ejemplo:

var myWindow = window.open('...') 
myWindow.document.getElementById('foo').style.backgroundColor = 'red' 

Tenga en cuenta que esto sólo funcionará si los padres e hijos ventanas tienen el mismo dominio. De lo contrario, las restricciones de seguridad de scripts entre sitios lo detendrán.

+0

En realidad es la política de mismo origen (http://www.w3.org/html/wg/html5/#same-origin), que básicamente significa que se debe acceder a una página en el mismo dominio, en el mismo puerto y con el mismo protocolo (por ejemplo, https://example.com no puede escribir en http://example.com, https://example.com:8080, etc.) – olliej

+0

lindo, esto es bueno saberlo. –

0
myWindow.document.writeln(documentString) 
5

Creo que esto hará el truco.

function popUp(){ 

    var newWindow = window.open("","Test","width=300,height=300,scrollbars=1,resizable=1") 

    //read text from textbox placed in parent window 
    var text = document.form.input.value 

    var html = "<html><head></head><body>Hello, <b>"+ text +"</b>." 
    html += "How are you today?</body></html>" 


    newWindow .document.open() 
    newWindow .document.write(html) 
    newWindow .document.close() 

    } 
0

La solución de formulario que menciona Vijesh es la idea básica detrás de la comunicación de datos entre ventanas. Si está buscando algún código de biblioteca, hay un excelente plugin de jQuery para esto: WindowMsg (ver el enlace en la parte inferior debido al extraño error de auto-vinculación de Stack Overflow).

Como lo describí en mi respuesta aquí: How can I implement the pop out functionality of chat windows in GMail? WindowMsg usa un formulario en cada ventana y luego el hash window.document.form ['foo'] para la comunicación. Como Dan menciona arriba, esto solo funciona si la ventana comparte un dominio.

También como se menciona en el otro hilo, puede usar JSON 2 lib de JSON.org para serializar objetos javascript para enviar entre ventanas de esta manera en lugar de tener que comunicarse únicamente mediante cadenas.

WindowMsg:

http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/

Cuestiones relacionadas