Dándole un ID a la etiqueta de script
Me encontré con un escenario en el que dar a un elemento script
un atributo id
resolvería un problema fácilmente. Sin embargo, después de leer sobre el elemento script
en w3schools y quirksmode, parece que hacerlo podría tener algunas consecuencias imprevistas.
¿Alguien se ha encontrado con alguno de estos problemas con navegadores como Chrome, Safari, FF3 up e IE 7 up?
5 answers
Está bien en todos los navegadores actuales.
El único navegador que se equivocó <script id>
fue Netscape 4, del que dejamos de preocuparnos hace mucho, mucho tiempo.
Esa página de quirksmode parece estar muy desactualizada, con su uso de atributos language
, script <!--
oculto, y application/x-javascript
. Su consejo sobre evitar <script>
en el <body>
(y ponerlo en <head>
en su lugar) está en desacuerdo con las prácticas alentadas de hoy.
Si estamos hablando <script>
problemas de compatibilidad de atributos: defer
no funciona en todas partes, así que no confíe en él; charset
no funciona en todas partes, y tampoco lo hace el parámetro charset en el Tipo de contenido del script servido, por lo que es mejor que su conjunto de caracteres de script coincida con la página; type
siempre debe ser text/javascript
y no una de las alternativas no funcionales que los pedantes que escribieron el RFC 4329 quisieran que usara.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-30 00:03:31
Si todavía tienes que apoyar Netscape 4, tienes muchos problemas, y la lástima y las condolencias del resto del mundo de los desarrolladores.
Respuesta corta, no me preocuparía por eso.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-29 23:52:14
Tenga en cuenta que establecer el id
en cualquier elemento introduce una nueva variable global con el mismo nombre que el atributo id
:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-07 22:29:01
No creo que un navegador tenga un problema al agregar un atributo id
a un elemento script
.
En algunos de mis sitios, que cargan JavaScripts adicionales a través de JavaScript, he agregado un atributo class
para hacer referencia a ellos más fácil. El validador no se quejó.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-29 23:51:40
Sé que ha pasado mucho tiempo, pero pensé que sería bueno señalar que cuando miras la definición de W3 Schools de la etiqueta de script , ves en algún momento que
La etiqueta también soporta los Atributos globales en HTML.
Y entre esos atributos, ta-da, encontrarás tu adorable id.
Lo mismo ocurre con un montón de etiquetas, que sin duda nos dará mucha flexibilidad a la hora de sacar esos buenos trucos del sombrero.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-09 09:43:31