2010-04-29 31 views
50

Encontré un escenario donde dar 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.Dando a la etiqueta de secuencia de comandos una ID

¿Alguien ha encontrado alguno de estos problemas con navegadores como Chrome, Safari, FF3 y IE 7?

+0

Esta es una vieja pregunta, pero parece tiras de Google Administrador de etiquetas el atributo 'id', por lo que es probable que valga la pena invertir en un enfoque alternativo (tal vez). – Alan

Respuesta

75

Está bien en todos los navegadores actuales.

El único navegador que obtuvo <script id> mal fue Netscape 4, que dejamos de importar hace mucho, mucho tiempo.

Esa página de quirksmode parece estar muy desactualizada, con su uso de language atributos, script <!-- ocultándose, y application/x-javascript. Su consejo sobre cómo evitar <script> en el <body> (y ponerlo en <head> en su lugar) está en desacuerdo con las prácticas recomendadas de hoy.

Si hablamos de problemas de compatibilidad de atributos <script>: 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 de juego de caracteres en el tipo de contenido del script servido, por lo que el conjunto de caracteres del script debe coincidir mejor con la página; type siempre debe ser text/javascript y no una de las alternativas que no funcionan que los pedantes que escribieron RFC 4329 quisieran que usara.

+20

¡Su historial de soporte de atributos del navegador me asombra! +1 – alex

+0

Bueno, hice trampas un poco como lo menciona el modo peculiar :-) Sí recuerdo el problema, pero no podría haberle dicho de pasada qué versión de Netscape era ... brrr, malos momentos. – bobince

+0

Gracias muchachos. –

2

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 que sea más fácil hacer referencia a ellos. El validador no se quejó.

6

Si todavía tiene que admitir Netscape 4, tiene muchos problemas, y la pena y las condolencias del resto del mundo de los desarrolladores.

Respuesta corta, no me preocuparía.

2

sé que ha pasado mucho tiempo, pero pensé que sería bueno señalar que cuando nos fijamos en W3 Schools definition of the script tag, que se ve en algún momento que

La etiqueta también es compatible con la Global Attributes in HTML.

y entre esos atributos, ta-da, encontrará su hermosa identificación.

Lo mismo vale para un montón de etiquetas, que sin duda nos darán mucha flexibilidad al sacar esos buenos trucos del sombrero.

1

Tenga en cuenta que la fijación de la id en cualquier elemento introduce una nueva variable global con el mismo nombre que el atributo id:

id as a global variable

Cuestiones relacionadas