Quelle est la différence entre document.location.href
et document.location
?
Est-ce la même chose sur tous les navigateurs?
Quelle est la différence entre document.location.href
et document.location
?
Est-ce la même chose sur tous les navigateurs?
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).
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.
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.
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.