¿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.hrefes la implementación completa, perowindow.locationlogra lo mismo. Consulte docs.sun.com/source/816-6408-10/location.htm : "Si asigna una cadena a lalocationpropiedad de un objeto, JavaScript crea unlocationobjeto y asigna esa cadena a suhrefpropiedad".window.locationpero 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.navigatees un método patentado, utilizado por Internet Explorer (estoy seguro de que si otros navegadores lo imitan por compatibilidad, Chrome no lo hace).document.locationowindow.locationson 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.locationTambié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.locationafectará a su objetivo de navegador. document.location solo afectará a su navegador y frame / iframe.fuente
window.navigateNO 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.navigatey mewindow.location.hrefparece 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.locationywindow.locationporque son compatibles con todos los principales navegadores. (Personalmente, nunca he visto que sewindow.navigateuse en el código de producción, ¿entonces quizás no tiene muy buen soporte?fuente
El soporte para
document.locationtambié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