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!