web-dev-qa-db-fra.com

Devrais-je utiliser window.navigate ou document.location en JavaScript?

Quelle est la méthode préférée à utiliser pour changer l'emplacement de la page Web actuelle à l'aide de JavaScript? J'ai déjà vu window.navigate et document.location utilisés. Y a-t-il des différences de comportement? Existe-t-il des différences dans les implémentations du navigateur?

168
dthrasher
window.location.href = 'URL';

est l'implémentation standard pour changer l'emplacement de la fenêtre en cours.

211
James Skidmore

document.locatio n est une propriété de chaîne en lecture seule (obsolète mais toujours présente), remplacée par document.url.

7
kennebec

window.location affectera la cible de votre navigateur. document.location n'affectera que votre navigateur et votre cadre/iframe.

6
Aldry Zhen

window.location affecte également le cadre,

la meilleure forme que j'ai trouvée est:

parent.window.location.href

Et le pire est:

parent.document.URL 

J'ai fait un test de navigateur massif, et quelques rares IE avec plusieurs plugins deviennent indéfinis avec le second formulaire.

6
jolmos

window.navigate non supporté par certains navigateurs

Dans le script Java, il existe de nombreuses manières de rediriger les personnes, voir le code et l'explication ci-dessous.

window.location.href = "http://krishna.developerstips.com/";
window.location = "http://developerstips.com/";
window.location.replace("http://developerstips.com/");
window.location.assign("http://work.developerstips.com/");

window.location.href charge la page à partir du cache du navigateur et n'envoie pas toujours la demande au serveur. Donc, si vous avez une ancienne version de la page disponible dans le cache, elle sera redirigée vers celle-ci au lieu de charger une nouvelle page à partir du serveur.

window.location.assign () méthode de redirection si vous souhaitez autoriser l'utilisateur à utiliser le bouton Précédent pour revenir au document d'origine.

window.location.replace () méthode si vous souhaitez rediriger vers une nouvelle page et n'autorisez pas l'utilisateur à accéder à la page d'origine à l'aide du bouton Précédent.

5
Srikrushna

window.navigate n'est PAS supporté par certains navigateurs, il est donc préférable de ne pas en utiliser. Toutes les autres méthodes utilisant la propriété location constituent l'approche la plus fiable et la plus cohérente.

4
Troy Grosh

J'irais avec window.location = "http://...";. Je code JavaScript depuis plusieurs navigateurs depuis plusieurs années et je n'ai jamais rencontré de problèmes pour utiliser cette approche.

window.navigate et window.location.href me semblent un peu bizarres.

2
cllpse

Il n'y a pas vraiment de différence. il y a environ 5 méthodes différentes pour le faire. Cependant, ceux que je vois le plus souvent sont document.location et window.location car ils sont supportés par tous les principaux navigateurs. (Personnellement, je n'ai jamais vu window.navigate utilisé dans le code de production, alors le support n'est peut-être pas très bon?)

1
Sasha Chedygov

la prise en charge de document.location est également bonne, bien que ce soit une méthode déconseillée. J'utilise cette méthode depuis un moment sans aucun problème. vous pouvez vous référer ici pour plus de détails:

https://developer.mozilla.org/en-US/docs/Web/API/document.location

0
Ankur Goyal