[javascript] Saber la ruta de una ventana en todo momento

Iniciado por ‭lipman, 10 Noviembre 2010, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

‭lipman

Tengo una ventana principal, desde la cual, lanzo un popup llamado 'hija'

Código (html4strict) [Seleccionar]

<a href="javascript:void(0)" onClick="hija=window.open('ventana.htm', 'nombre'); return false;">Abrir</a>


Para saber la localización en donde se encuentra, lo hago con una función, declarando:

Código (javascript) [Seleccionar]
function func() {
alert(hija.location);
}


Sin embargo, si en la ventana hija, dispongo de enlaces, por ejemplo, de uno que me lleve a google.com, y vuelvo a intentar hallar la dirección en la que se encuentra, no me devuelve nada, directamente, no me lanza ni un alert.

Quisiera saber cómo averiguar (siempre, desde la ventana principal) la dirección en la que se encuentra el popup, a pesar de estar en otras webs, o incluso saber cuando no se encuentra en la dirección a la que principalmente le mando.

Un saludo!

bizco

me temo que cuando se cambia de dominio ya no puedes acceder a los datos de la ventana. no estoy 100% seguro, pero creo que es asi.

‭lipman

Aun asi... de ser ese el caso.. no se podria saber cuando dejo de estar en la página a la que yo mando? >.>

bizco

pero te refieres a que notifique a la ventana padre cuando va  a salir de tu dominio?. de todos modos puedes usar un iframe entonces si podras saber incluso el otro dominio.

‭lipman

Exacto, quiero que lo notifique en la ventana padre.

Lo de los iframes no me lo solucionaria porque podria cambiar igualmente la página de otras múltiples formas.

bizco

que notifique a la padre ahora mismo no se me ocurre ninguna pq creo que el evento onunload tampoco notificaria. lo que podrias hacer es en la funcion que usas verificar si location tiene valor, si no tiene valor el popup esta en otro dominio.

‭lipman

Lo he intentado de varias maneras, accionado desde un botón, algo en plan:

if(ventana.location="direccion")
alert("Sigue")
else
alert("No sigue")

Cuando sigue, me salta el alert, pero cuando no sigue, no me salta nada.

Es como si directamente no existiera, por lo que tambien hice:

if(!ventana.location)
alert("No sigue")
else
alert("Sigue")

y tampoco funciona

bizco

#7
intenta acceder desde la ventana hija a la padre en el evento unload, si te dejase podrias enterarte cuando a sido cerrada.

Confirmado, en el unload haces referencia a la ventana padre y listo.


function salir()
{
window.opener.que_salgo();
}


"que_salgo" es una funcion que tiene que existir en el archivo padre, ya tu lo adaptas a tus necesidades.