He abierto una nueva ventana con window.open() y quiero usar la referencia de la llamada window.open() para luego escribir contenido en la nueva ventana. Intenté copiar HTML de la ventana anterior a la nueva ventana usando myWindow.document.body.innerHTML = oldWindowDiv.innerHTML; pero eso no funciona. ¿Algunas ideas?¿Cómo escribo contenido en otra ventana del navegador usando Javascript?
Respuesta
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.
myWindow.document.writeln(documentString)
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()
}
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/
- 1. Minimizar la ventana del navegador usando javascript
- 2. ventana del navegador de redimensionamiento del navegador cruzado en JavaScript
- 3. JavaScript PopUp - Destino del enlace de emergente = otra ventana del navegador
- 4. Captura de pantalla del navegador mediante JavaScript (u otra cosa)
- 5. Solicitud del archivo de descarga del navegador usando JavaScript
- 6. ¿Puedo pasar una variable de JavaScript a otra ventana del navegador?
- 7. ¿Determinando la posición de la ventana del navegador en JavaScript?
- 8. ¿Cómo puedo averiguar el nodo DOM en el cursor en la ventana de contenido editable de un navegador usando Javascript?
- 9. Detectar ventana del navegador Maximizado/Minimizado con Javascript
- 10. Controlando la ventana del navegador a través de Javascript
- 11. Crear un navegador de ventana dentro del navegador con extjs
- 12. Javascript establece el tamaño de la ventana del navegador
- 13. JavaScript - Ventana del navegador de referencia por nombre?
- 14. javascript para verificar cuando la ventana del navegador está cerca
- 15. inhabilitando el caché del navegador en php o usando javascript
- 16. JavaScript: ¿Cómo averiguar el ancho y alto del punto de vista en la ventana del navegador?
- 17. GWT Ventana emergente en la nueva ventana del navegador
- 18. Ventana oculta usando javascript
- 19. ¿Es posible arrastrar y soltar contenido entre dos ventanas del navegador usando JQuery u otro método?
- 20. Cómo abrir un archivo pdf nueva ventana del navegador en javascript
- 21. ¿Cómo escribo Json sin codificar en mi vista usando Razor?
- 22. Incrustar ventana del navegador web en Java
- 23. ventana del navegador abierta del programa Java
- 24. JavaScript - Obtenga la altura del navegador
- 25. Obtener la versión del navegador de IE usando Javascript
- 26. ¿Puedo cambiar el tamaño de la ventana del navegador?
- 27. Cómo acoplar Firebug en la ventana del navegador?
- 28. ¿Cómo crear una ventana del navegador en J2ME?
- 29. ¿Cómo escribo en un OutputStream usando DefaultHttpClient?
- 30. Ventana mímica. onerror en Opera usando javascript
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
lindo, esto es bueno saberlo. –