Llamo a la función javascript window.open() para cargar otra URL en una ventana emergente. Una vez que los usuarios terminan, los lleva a la última página que tiene un enlace que dice cerrar ventana que llama a la función window.close(). Ahora, cuando esa página se cierra, necesito actualizar algo en la página original que abrió la ventana. ¿Hay alguna manera de hacer esto? Tengo que llamar a una función que está en mi página original.¿Cómo ejecutar la función de la ventana principal cuando se cierra la ventana secundaria?
Respuesta
Usted puede tratar de alguna manera esto:
ventana Spawned: Ventana
window.onunload = function (e) {
opener.somefunction(); //or
opener.document.getElementById('someid').innerHTML = 'update content of parent window';
};
Padres:
window.open('Spawn.htm','');
window.somefunction = function(){
}
No deberías haz esto en th e los padres, de lo contrario opener.somefunction() no funcionará, haciendo window.somefunction hace pública algunaFuncion como:
function somefunction(){
}
Eso fue exactamente lo que estaba buscando funciona muy bien. – ngreenwood6
+1, me ayudó en el momento adecuado. Escribir window.somefunction = function {....} es lo mismo que escribir function somefunction() {....} –
Esto no funciona en IE si la ventana generada y la ventana principal no son del mismo dominio – Binod
Probablemente desee utilizar el evento 'onbeforeunload'. Le permitirá llamar a una función en la ventana principal del niño inmediatamente antes de que se cierre la ventana secundaria.
Así que probablemente algo como esto:
window.onbeforeunload = function (e) {
window.parent.functonToCallBeforeThisWindowCloses();
};
ok que se parece a lo que estoy buscando, pero ¿cómo sabrá qué ventana? Estoy hablando de.Por ejemplo, si hago window.open() y luego lo agrego a continuación, ¿sabrá su ventana o cómo la adjuntaré a esa ventana? – ngreenwood6
Lo pondrá antes de descargar en una etiqueta de script en el HTML de su ventana secundaria. Como la ventana secundaria solo tiene un padre, el navegador sabe automáticamente cuál es esa ventana principal. –
así que si tengo una función llamada doSomething() en la ventana primaria pero no está definida en la ventana secundaria, ¿todavía me permitirá ejecutarla? – ngreenwood6
Las respuestas a medida que se requieren son para agregar código a la ventana generado. Eso es un acoplamiento innecesario.
// In parent window
var pop = open(url);
pop.onunload = function() {
// Run your code, the popup window is unloading
// Beware though, this will also fire if the user navigates to a different
// page within thepopup. If you need to support that, you will have to play around
// with pop.closed and setTimeouts
}
Sé que este post es viejo, pero me pareció que esto realmente funciona bien:
window.onunload = function() {
window.opener.location.href = window.opener.location.href;
};
La parte window.onunload
fue la pista que encontré buscando en Google esta página. Gracias, @jerjer!
Verificar cotización link. Esto sería útil también ..
En la ventana de Padres:
function OpenChildAsPopup() {
var childWindow = window.open("ChildWindow.aspx", "_blank",
"width=200px,height=350px,left=200,top=100");
childWindow.focus();
}
function ChangeBackgroudColor() {
var para = document.getElementById('samplePara');
if (para !="undefied") {
para.style.backgroundColor = '#6CDBF5';
}
}
ventana primaria Formato HTML:
<div>
<p id="samplePara" style="width: 350px;">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
</p><br />
<asp:Button ID="Button1" Text="Open Child Window"
runat="server" OnClientClick="OpenChildAsPopup();"/>
</div>
En Ventana Niño:
// This will be called when the child window is closed.
window.onunload = function (e) {
opener.ChangeBackgroudColor();
//or you can do
//var para = opener.document.getElementById('samplePara');
//if (para != "undefied") {
// para.style.backgroundColor = '#6CDBF5';
//}
};
Este es un antiguo puesto , pero pensé en agregar otro método para hacer esto:
var win = window.open("http://www.google.com");
var winClosed = setInterval(function() {
if (win.closed) {
clearInterval(winClosed);
foo(); //Call your function here
}
}, 250);
No tiene que modificar el contenido ni utilizar ningún controlador de eventos desde la ventana secundaria.
¡Eres un genio, hermano! ¡¡¡Gracias!!! –
Junto con la respuesta jerjer (arriba), a veces en su ventana padre y ventana secundaria no son tanto externos o ambos interno verá un problema de apertura indefinida, y no se puede acceder a las propiedades de páginas principal, ver window.opener is undefined on Internet Explorer
- 1. ¿Cómo ejecutar la función de la ventana primaria cuando se cierra la ventana secundaria?
- 2. Actualice la ventana principal desde la ventana secundaria en javascript
- 3. ¿Se puede notificar a la ventana principal cuando se cierra una ventana secundaria? (en un dominio de diferenciación)
- 4. Actualizar la ventana primaria desde la ventana secundaria usando javascript
- 5. actualizar la ventana primaria al cerrar la ventana secundaria
- 6. ¿Se cierra la aplicación Cocoa cuando la ventana principal está cerrada?
- 7. ¿Por qué el cierre de la última ventana secundaria minimiza su ventana principal?
- 8. Volver a cargar la ventana primaria desde la ventana secundaria
- 9. Cómo cerrar la ventana emergente y redireccionar la ventana principal
- 10. ¿Cómo cerrar fancybox desde la ventana secundaria?
- 11. Javascript pasando datos desde la ventana de la ventana hijo a la ventana principal, IE error?
- 12. ¿Cómo recibir notificaciones cuando la ventana se cierra en la extensión de Firefox?
- 13. Llevar la ventana principal al frente después de que la pantalla secundaria se apague
- 14. Ventana emergente nunca se cierra
- 15. ¿Por qué la ventana de pygame no se cierra correctamente?
- 16. Actualizar ventana padre cuando la ventana emergente está cerrada
- 17. WPF. Cómo ocultar/mostrar la ventana principal desde otra ventana
- 18. Ventana del propietario de WPF en la parte superior de la ventana secundaria
- 19. ¿Cómo puedo enfocar una ventana modal de WPF cuando se hace clic en la ventana principal de la aplicación?
- 20. C# Ventana de creación - Definición de la ventana principal
- 21. Esperando la carga de la ventana secundaria para completar
- 22. javascript: ¿Cómo puede una ventana principal saber que su ventana hija está cerrada?
- 23. pylab matplotlib "espectáculo" espera hasta que se cierra la ventana
- 24. ¿Cómo puedo acceder al árbol dom de la ventana secundaria?
- 25. Cocoa/Objective-C - Ventana secundaria con entrada de texto sin ventana principal inactiva
- 26. ¿Puedo ejecutar Javascript en función del tamaño de la ventana?
- 27. ¿Cómo llamar al método de la ventana principal de WPF desde la ventana modal?
- 28. Qt: ¿cómo establecer la posición inicial de la ventana principal?
- 29. ¿Cómo pasar datos a la ventana principal desde la ventana emergente?
- 30. Comprobar si una ventana emergente se cierra
Ver http://stackoverflow.com/questions/1112340/how-to-run-function-of-parent-window-when-child-window-closes –