Propriétés globales et éléments de l'arborescence DOM avec identifiants
Dans les navigateurs Web comme Internet Explorer et Chrome, les éléments de l'arborescence DOM avec des identifiants attribués sont accessibles via l'objet global en utilisant leur ID comme nom de variable ou propriété de l'objet window. Par exemple, un élément avec l'ID « exemple » peut être obtenu en utilisant :
alert(example.innerHTML); // Alerts "some text".
ou
alert(window["example"].innerHTML); // Alerts "some text".
Cependant, ce comportement est déconseillé pour plusieurs raisons :
-
Conflit avec les propriétés natives : Les éléments nommés deviennent des propriétés de l'objet document, ce qui peut entrer en conflit avec ses propriétés réelles. IE aggrave encore cela en ajoutant également des éléments nommés en tant que propriétés de l'objet fenêtre, pouvant entrer en collision avec les membres existants.
-
Visibilité de la portée globale : Ces éléments deviennent visibles en tant que variables de type global. Alors que les vraies variables globales les masquent dans le code, l'omission de la déclaration var dans les affectations aux variables globales dont les noms sont en conflit peut modifier par inadvertance la valeur de l'élément.
-
Manque de prise en charge dans les navigateurs : Uniquement IE et Chrome , et Opera a initialement pris en charge ce comportement, le rendant incohérent sur différentes plates-formes.
-
Dépréciation dans HTML5 : La spécification HTML5 a standardisé ce comportement, en l'étendant à Firefox. Cependant, il est toujours considéré comme une mauvaise pratique de s'appuyer sur des éléments nommés visibles dans la fenêtre ou en tant que variables globales.
Au lieu de cela, il est préférable d'utiliser la méthode standardisée getElementById pour récupérer des éléments de l'arborescence DOM, car il est largement soutenu et moins ambigu.
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