videos ventanas ventana transparente reproducir pagina modal hacer flotante emergentes emergente clic cargar abrir javascript popup

javascript - ventanas - ventana flotante html al hacer clic



¿Cómo puedo hacer referencia a una ventana emergente desde dos páginas diferentes? (5)

Acabo de hacer una prueba rápida incluso después de salir de la página de apertura, la ventana emergente todavía tiene el objeto ''abridor'' y puede acceder a él. Entonces, sondee el abrelatas y restablezca la referencia, o agregue un temporizador después de salir de la página para esperar y luego volver a vincular.

1.htm

<script> var w = window.open("p.htm", "playerWin", "width=300,height=130"); </script> <a href="2.htm">2</a>

p.htm

<a href="javascript:opener.w=this;">re-link</a>

2.htm

<script> var w; </script> <a href="javascript:alert(w);">check</a>

Necesito permitir que un usuario haga clic en un enlace en "página-1.htm" y abra una ventana emergente. Luego, cuando el usuario navega hacia "página-2.htm" en la ventana principal del navegador, necesito poder hacer referencia a la ventana emergente.

JavaScript en "página-1.htm"

var playerWin = window.open("player.htm", "playerWin", "width=300,height=130"); playerWin.play("song.mp3"); // play() is a function in player.htm

JavaScript en "página-2.htm"

playerWin.play("tune.mp3");

Este código en la página 2.htm genera un error "playerWin no está definido". Eso es comprensible porque no se ha definido ninguna variable llamada playerWin en la página 2.htm.

Mi pregunta es: ¿puedo hacer referencia a la ventana emergente de la página-2.htm?


Debe colocar page-1.htm en un iframe (que ocupa toda la ventana del navegador) ... luego, inicie y comuníquese con la ventana emergente a través de la ventana principal de la página-1.

es decir. (perdón por el pseudo código)

user clicks on link in page-1 page-1 asks it''s parent window to open a popup popup opens user navigates away (in the iframe) user clicks a link in page-2 page-2 asks it''s parent window to close it''s popup

Siempre que todo esté en el mismo dominio y la navegación se mantenga dentro del iframe, esto debería funcionar


La respuesta es no. La mayoría de los navegadores aislarán por completo la ventana y el documento de una navegación a la siguiente. No hay ningún lugar donde pueda colocar la referencia a la ventana emergente que sobrevivirá cuando navegue a la página2.


No lo he visto antes ... Voy a suponer que estás haciendo esto porque tienes que y no tienes la opción de organizar tus páginas de manera diferente.

Dado que está utilizando ASP.NET, simplemente tenga la página-2 establecer un valor de sesión. Luego haga que su página de jugador ejecute un temporizador AJAX para verificar la variable de sesión y luego realice la acción apropiada, ya que tiene un control en la ventana emergente.


La respuesta aceptada no funcionó para mí en Firefox 12.0. Actualmente estoy trabajando en un proyecto en el que la aplicación debe tener un conocimiento persistente de qué ventanas emergentes están abiertas / cerradas mientras navega de página en página o actualiza la página actual. Estoy usando cookies de JavaScript para almacenar información en el cliente cada vez que se abre o cierra una ventana emergente. No es perfecto, pero es una buena opción si no necesitas algo que sea 100% infalible. Me parece que intentar mantener las variables de JavaScript mientras recarga la página siempre será mucho menos confiable, y tratar de almacenar información sobre ventanas emergentes en el servidor no tiene ningún sentido, entonces ¿qué más queda aparte de las cookies?