Maison > interface Web > js tutoriel > Pourquoi puis-je parfois accéder directement aux ID d'éléments HTML en tant que variables globales en JavaScript ?

Pourquoi puis-je parfois accéder directement aux ID d'éléments HTML en tant que variables globales en JavaScript ?

Susan Sarandon
Libérer: 2024-12-01 02:00:10
original
818 Les gens l'ont consulté

Why Can I Sometimes Access HTML Element IDs Directly as Global Variables in JavaScript?

Accès global aux variables des ID d'éléments HTML

La question se pose concernant la gestion appropriée de l'accès aux ID d'éléments HTML via des variables globales. Dans l'exemple donné, Chrome permet un accès direct à un élément avec l'ID "a" via a.stuff(), tandis que Firefox nécessite l'utilisation de document.getElementById('a').

Spécification

La spécification HTML4 ne décrit pas explicitement ce comportement. Cependant, cela n'interdit pas non plus la pratique consistant à transformer les ID d'éléments en variables globales. La spécification HTML WHATWG impose actuellement ce comportement, considérant l'accès global aux ID d'élément comme un problème d'héritage ou de compatibilité.

Mise en œuvre

Principaux navigateurs, notamment Chrome et Firefox (dans mode bizarreries), ont adopté ce comportement pour des raisons de compatibilité. Firefox permet cependant également un accès direct aux éléments via des variables globales en mode strict, mais sa mise en œuvre peut s'avérer peu fiable.

Ambiguïté

Quand une variable globale a et un élément HTML avec l'ID "a" existe, le comportement dépend du contexte d'exécution. Dans la plupart des cas, JavaScript donnera la priorité à la variable globale a par rapport à l'élément HTML. Cependant, l'utilisation de variables globales pour les ID d'éléments est généralement mal vue en raison de conflits potentiels et de la pollution de l'espace de noms.

Caractères spéciaux dans les ID HTML

Les ID HTML peuvent contenir des traits d'union (- ), les deux-points (:) et les points (.), caractères qui ne peuvent pas être utilisés dans les identifiants JavaScript. Pour accéder à ces éléments via des variables globales, les navigateurs les traduiraient. Par exemple, un élément avec l'ID "foo-bar" peut être accessible via la variable globale foo-bar.

Conclusion

Alors que la pratique consistant à rendre les identifiants d'éléments globaux les variables ont un support historique, cela n'est pas explicitement spécifié dans la spécification HTML4. La spécification HTML WHATWG requiert ce comportement, mais recommande d'utiliser document.getElementById() ou d'autres méthodes pour accéder aux éléments. L'utilisation de variables globales pour les ID d'éléments doit être évitée en raison de la confusion et des conflits potentiels avec d'autres variables dans l'espace de noms global.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal