Maison >interface Web >js tutoriel >Pourquoi l'accès à l'ID d'élément global dans JavaScript diffère-t-il entre les navigateurs et quelle est la norme ?

Pourquoi l'accès à l'ID d'élément global dans JavaScript diffère-t-il entre les navigateurs et quelle est la norme ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-13 02:06:08650parcourir

Why Does Global Element ID Access in JavaScript Differ Between Browsers, and What's the Standard?

Accès à l'ID d'élément global : conformité aux normes Web et au comportement du navigateur

Question :

En Javascript, accéder aux éléments en leurs identifiants utilisant la notation par points (a.method()) fonctionnent globalement dans Chrome, mais pas dans Firefox. Quel est le comportement correct selon les spécifications Web ? De plus, comment Chrome gère-t-il les ambiguïtés d'ID et les caractères spéciaux dans la traduction d'ID ?

Réponse :

Le comportement concernant l'accès global aux ID d'éléments varie en fonction de la spécification consultée. .

  • Spécification HTML4 : Ne décrit pas ce comportement explicitement.
  • Spécification HTML WHATWG : Nécessite ce comportement.

Les navigateurs ont historiquement adopté ce comportement pour des raisons de compatibilité, Internet Explorer l'ayant initialement introduit. Firefox le prend également en charge en mode bizarreries.

Comportement correct :

Selon la spécification HTML WHATWG, les éléments avec des identifiants doivent être accessibles globalement. Cependant, il est généralement considéré comme une mauvaise pratique de s'appuyer sur l'espace de noms global pour le référencement des éléments.

Gestion des ambiguïtés dans Chrome :

Chrome ne gère actuellement pas les ambiguïtés entre les variables globales et les éléments s'identifient bien. Si un élément avec le même ID qu'une variable globale existe, l'accès à cet élément via la variable globale peut entraîner un comportement inattendu.

Traduction de l'ID avec des caractères spéciaux :

Les caractères spéciaux dans les identifiants sont accessibles à l'aide de la méthode getElementById(). Cependant, la traduction de ces caractères dans la représentation de variable globale n'est explicitement définie dans aucune spécification.

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!

Déclaration:
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