204 votes

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

Quelle est la meilleure méthode à utiliser pour changer l'emplacement de la page Web actuelle en utilisant JavaScript ? J'ai vu les deux méthodes window.navigate et document.location utilisées. Y a-t-il des différences de comportement ? Y a-t-il des différences dans les implémentations des navigateurs ?

256voto

James Skidmore Points 13628
window.location.href = 'URL';

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

29 votes

Avez-vous une référence qui indique que window.location.href est l'implémentation standard ? Et cette norme s'applique-t-elle également à tous les navigateurs ? Vous semblez bien informé et plus de 15 votes (plus la réponse acceptée) contribuent à faire autorité, même si je pense qu'il serait préférable de voir la documentation des équipes de développement des navigateurs pour étayer cette affirmation.

6 votes

@Goyuix, il est probablement plus exact de dire que window.location.href est l'implémentation complète, mais window.location accomplit la même chose. Voir docs.sun.com/source/816-6408-10/location.htm : "Si vous attribuez une chaîne de caractères à la location d'un objet, JavaScript crée un location et affecte cette chaîne à son objet href propriété."

3 votes

On dirait que ces gars ont décidé que c'est une préférence personnelle : developer.mozilla.org/Talk:fr/DOM/window.location . Ou voyez l'exemple près du bas, ils utilisent seulement window.location mais cela n'indique pas nécessairement l'un ou l'autre : developer.mozilla.org/fr/window.location .

6voto

kennebec Points 33886

document.location est une propriété de type chaîne de caractères (dépréciée mais toujours présente) en lecture seule, remplacée par document.URL .

5 votes

Je n'ai pas pu trouver d'informations suggérant que document.location est déprécié. Veuillez ajouter la source.

6voto

Aldry Zhen Points 41

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

6voto

jolmos Points 31

window.location affecte également le cadre,

Le meilleur formulaire que j'ai trouvé est :

parent.window.location.href

Et le pire est :

parent.document.URL 

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

0 votes

Dans cette logique, top.window.location.href ne serait-il pas encore mieux ?

4voto

Troy Grosh Points 31

window.navigate n'est PAS pris en charge par certains navigateurs, il faut donc l'éviter. Toutes les autres méthodes utilisant la propriété d'emplacement constituent l'approche la plus fiable et la plus cohérente.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X