60 votes

Quelle est la différence entre document.location.href et document.location?

Quelle est la différence entre document.location.href et document.location ?

Est-ce la même chose sur tous les navigateurs?

68voto

bobince Points 270740

document.location est un synonyme window.location qui a été supprimée pour presque aussi longtemps que JavaScript a existé. Ne l'utilisez pas.

location est un objet structuré, avec des propriétés correspondant à la partie de l'URL. location.href est la totalité de l'URL dans une chaîne unique. L'affectation d'une chaîne est définie à provoquer le même type de navigation, alors faites votre choix.

(Je considère l'écriture d' location.href= something être un peu meilleure que c'est un peu plus explicite sur ce qu'il fait. Vous devriez généralement, pour éviter qu' location= something - il semble que, de façon trompeuse comme une affectation de variable. window.location= something est très bien cependant).

28voto

Guffa Points 308133

L' document.location est un objet qui contient les propriétés de l'emplacement actuel.

L' href de la propriété est l'une de ces propriétés, contenant l'URL complète, c'est à dire toutes les autres propriétés mises ensemble.

Certains navigateurs vous permettent d'attribuer une URL à l' location objet et agit comme si l'on attribue à l' href de la propriété. Les autres navigateurs sont plus difficiles, et vous oblige à utiliser l' href de la propriété. Ainsi, pour rendre le code du travail dans tous les navigateurs, vous devez utiliser l' href de la propriété.

À la fois l' window et document objets a un location objet. Vous pouvez définir l'URL en utilisant soit window.location.href ou document.location.href. Cependant, logiquement, l' document.location objet doit être en lecture seule (comme vous ne pouvez pas changer l'URL d'un document; modifier l'URL des charges d'un nouveau document), donc pour être sur le côté sécuritaire, vous devriez plutôt utiliser window.location.href lorsque vous voulez mettre l'URL.

12voto

slier Points 1790
 typeof document.location; // 'object'
typeof document.location.href; // 'string'
 

La propriété href est une chaîne, tandis que document.location est lui-même un objet.

5voto

D. Evans Points 641

document.location est un objet, alors que l' document.location.href est une chaîne de caractères. Mais l'ancien a un toString méthode, de sorte que vous pouvez lire comme si c'était une chaîne et d'obtenir la même valeur qu' document.location.href.

Dans certains navigateurs plus modernes, je pense que - vous pouvez également assigner à l' document.location comme si c'était une chaîne de caractères. Selon le Mozilla documentation cependant, il est préférable d'utiliser window.location dans ce but, comme document.location a été à l'origine en lecture seule et ne peuvent donc pas être aussi largement pris en charge.

3voto

MAS1 Points 732

document.location est déconseillé en faveur de window.location, accessible uniquement par emplacement, puisqu'il s'agit d'un objet global.

L'objet location a plusieurs propriétés et méthodes. Si vous essayez de l'utiliser comme une chaîne, alors il agit comme location.href.

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