¿Cuál es el método preferido para cambiar la ubicación de la página web actual usando JavaScript? He visto utilizar window.navigate y document.location. ¿Hay alguna diferencia en el comportamiento? ¿Hay diferencias en las implementaciones del navegador?
javascript
html
navigation
dthrasher
fuente
fuente
window.location.href
es la implementación completa, perowindow.location
logra lo mismo. Consulte docs.sun.com/source/816-6408-10/location.htm : "Si asigna una cadena a lalocation
propiedad de un objeto, JavaScript crea unlocation
objeto y asigna esa cadena a suhref
propiedad".window.location
pero eso no indica necesariamente de ninguna manera: developer.mozilla.org/en/window.location .window.location.href = 'URL';
y tambiénwindow.location.assign('URL');
el método que está diseñado para volver a cargar una nueva página. Se puede encontrar más información w3schools.com/jsref/obj_location.aspwindow.navigate
es un método patentado, utilizado por Internet Explorer (estoy seguro de que si otros navegadores lo imitan por compatibilidad, Chrome no lo hace).document.location
owindow.location
son objetos estándar (consulte las diversas especificaciones HTML / HTML5 / DOM).document.location = someURL
(owindow.location = someURL
) probablemente sea compatible debido al código heredado. La forma correcta de hacerlo esdocument.location.href = someURL
, o tal vezdocument.location.assign(someURL)
.fuente
document.locatio n es una propiedad de cadena de solo lectura (en desuso pero aún presente), reemplazada por document.url .
fuente
window.location
También afecta al marco,la mejor forma que encontré es:
Y lo peor es:
Hice una prueba masiva del navegador, y algunos IE raros con varios complementos quedan indefinidos con la segunda forma.
fuente
window.location
afectará a su objetivo de navegador. document.location solo afectará a su navegador y frame / iframe.fuente
window.navigate
NO es compatible con algunos navegadores, por lo que se debe evitar. Cualquiera de los otros métodos que usan la propiedad de ubicación es el enfoque más confiable y consistentefuente
Me gustaría ir con
window.location = "http://...";
. He estado codificando JavaScript entre navegadores durante algunos años, y nunca he tenido problemas con este enfoque.window.navigate
y mewindow.location.href
parece un poco extraño.fuente
Realmente no hay diferencia; Hay alrededor de 5 métodos diferentes para hacerlo. Sin embargo, los que veo con más frecuencia son
document.location
ywindow.location
porque son compatibles con todos los principales navegadores. (Personalmente, nunca he visto que sewindow.navigate
use en el código de producción, ¿entonces quizás no tiene muy buen soporte?fuente
El soporte para
document.location
también es bueno, aunque es un método obsoleto. He estado usando este método por un tiempo sin problemas. puedes consultar aquí para más detalles:https://developer.mozilla.org/en-US/docs/Web/API/document.location
fuente
Puedes mover tu página usando
fuente