¿Alguien puede decirme la diferencia entre window.location.href
y top.location.href
?Diferencia entre window.location.href y top.location.href
Y también dónde usar cuál.
¿Y cuál será mejor al redirigir después de una llamada ajax en mvc?
¿Alguien puede decirme la diferencia entre window.location.href
y top.location.href
?Diferencia entre window.location.href y top.location.href
Y también dónde usar cuál.
¿Y cuál será mejor al redirigir después de una llamada ajax en mvc?
window.location.href
devuelve la ubicación de la página actual.
top.location.href
(que es un alias de window.top.location.href
) devuelve la ubicación de la ventana superior en la jerarquía de la ventana. Si una ventana no tiene padre, top
es una referencia a sí mismo (en otras palabras, window
=== window.top
).
top
es útil tanto cuando se trata de marcos como cuando se trata de ventanas que han sido abiertas por otras páginas. Por ejemplo, si usted tiene una página llamada test.html
con la siguiente secuencia de comandos:
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
La alerta resultante tendrá la ruta completa a Test.html – no about: blank, que es lo que window.location.href
volvería.
Para responder a su pregunta acerca de la redirección, vaya con window.location.assign(url);
¿Es correcto llamar 'top.location.href' un * alias * de' window.top.location.href'? Pensé que una variable llamada "global" es realmente una * taquigrafía para una propiedad * de 'ventana', mientras que * alias * implica que es una variable independiente que apunta al mismo lugar. –
muy buena explicación –
top
se refiere al objeto ventana que contiene todos los marcos actuales (padre del resto de las ventanas). window
es el actual window
.
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
por lo top.location.href
puede contener el vínculo "maestro" que contiene todos los fotogramas, mientras que window.location.href
solo contiene el enlace "actual" de la página.
El primero añade un elemento a la historia en que puede (o debe ser capaz de) haga clic en "Volver" y volver a la página actual.
El segundo reemplaza el elemento del historial actual para que no pueda volver a él.
Ver window.location
:
assign(url)
: Cargue el documento en la URL proporcionada.
replace(url)
: Reemplace el documento actual con el que se encuentra en la URL proporcionada. La diferencia con el método assign()
es que después de usar replace()
, la página actual no se guardará en el historial de la sesión, lo que significa que el usuario no podrá usar el botón Atrás para navegar hacia ella.
window.location.href = url;
se ve favorecida por:
window.location = url;
Para la cuestión de CORS no funciona ... ¿cómo solucionar esto? – Prateek
top
objeto tiene más sentido dentro de los marcos. Dentro de un marco, window
se refiere a la ventana del marco actual, mientras que top
se refiere a la ventana más externa que contiene los marcos. Entonces:
window.location.href = 'somepage.html';
significa cargando somepage.html
dentro del marco.
top.location.href = 'somepage.html';
significa cargando somepage.html
en la ventana principal del navegador.
olvidé mencionar que tuve que redireccionar a una nueva URL en .NET MVC ... cuando utilicé top.location.href funcionó, mientras que window.location no ... ¿puede usted también decir la razón por la que ?? ?? – Egalitarian
lo tengo ... gracias .... – Egalitarian