Quelle est la différence entre window.location et document.location? Les deux doivent-ils faire référence au même objet?
Réponses
Trop de publicités?Le moyen canonique pour obtenir l'objet de localisation actuel est window.location
(voir cette page MSDN de 1996 et le brouillon du W3C de 2006).
Comparez ceci avec document.location
, qui ne retournait initialement que l'URL actuelle en tant que chaîne de caractères (voir cette page sur MSDN). Probablement pour éviter la confusion, document.location
a été remplacé par document.URL
(voir ici sur MSDN), qui fait également partie de DOM Level 1.
Dans la mesure de mes connaissances, tous les navigateurs modernes associent document.location
à window.location
, mais je préfère toujours window.location
car c'est ce que j'utilise depuis que j'ai écrit mon premier DHTML.
Intéressant, si vous avez un frame, une image ou un formulaire nommé 'location', alors 'document.location' fournit une référence à la fenêtre du frame, de l'image ou du formulaire, respectivement, au lieu de l'objet Location. Apparemment, cela est dû au fait que la recherche de nom de la collection document.forms, document.images et window.frames a la priorité sur la correspondance avec window.location.
if (document.location.tagName == 'IMG') alert('Bonjour!')