web-dev-qa-db-fra.com

Donner un identifiant au script

Je suis tombé sur un scénario où donner un élément script un attribut id résoudrait facilement un problème. Cependant, après avoir lu sur l'élément script à w3schools et quirksmode , il semble que cela puisse avoir des conséquences imprévues.

Quelqu'un at-il rencontré l'un de ces problèmes avec des navigateurs tels que Chrome, Safari, FF3 up et IE 7 up?

59
The Code Pimp

C'est bien dans tous les navigateurs actuels.

Le seul navigateur qui a obtenu <script id> mal était Netscape 4, dont nous avons cessé de nous préoccuper il y a très, très longtemps.

Cette page en quirksmode semble mal obsolète, avec son utilisation des attributs language, script <!-- masquage et application/x-javascript. Ses conseils pour éviter <script> dans le <body> (et le mettre dans <head> au lieu de cela) est en contradiction avec les pratiques encouragées d'aujourd'hui.

Si nous parlons <script> problèmes de compatibilité des attributs: defer ne fonctionne pas partout, donc ne vous y fiez pas; charset ne fonctionne pas partout, pas plus que le paramètre charset du Content-Type du script servi, donc votre jeu de caractères de script devrait mieux correspondre à la page; type doit toujours être text/javascript et pas une des alternatives non fonctionnelles que les pédants qui ont écrit le RFC 4329 aimeraient que vous utilisiez.

94
bobince

Gardez à l'esprit que la définition de id sur n'importe quel élément introduit une nouvelle variable globale portant le même nom que l'attribut id:

id as a global variable

9
niutech

Si vous devez toujours prendre en charge Netscape 4, vous avez beaucoup de problèmes - et la pitié et les condoléances du reste du monde des développeurs.

Réponse courte, je ne m'en inquiéterais pas.

7
Robusto

Je sais que beaucoup de temps s'est écoulé, mais je pensais que ce serait bien de souligner que lorsque vous regardez Définition des balises de script dans les écoles W , vous voyez à un moment donné que

La balise prend également en charge les attributs globaux en HTML .

et parmi ces attributs, ta-da, vous trouverez votre belle id.

Il en va de même pour un grand nombre de balises, ce qui nous donnera certainement beaucoup de flexibilité pour tirer ces astuces de Nice du chapeau.

2
JBourne

Je ne pense pas qu'un navigateur aurait un problème en ajoutant un attribut id à un élément script.

Sur certains de mes sites, qui chargent des JavaScripts supplémentaires via JavaScript, j'ai ajouté un attribut class pour faciliter leur référencement. Le validateur ne s'est pas plaint.

2
alex