This translation is incomplete. Please help translate this article from English.
L'element <script> (o element HTML script "Seqüència de comandaments" ) s'utilitza per inserir o fer referència a un script executable dins d'un document HTML or XHTML.
Els scripts sense atributs async o defer, així com els scripts en línia, es capten i s'executen immediatament, abans que el navegador segueixi analitzant la pàgina.
El script ha de ser servit amb el tipus text/javascript MIME, però els navegadors són indulgents i només bloquejan si el script es serveix amb un tipus d'imatge (image/*), de vídeo (video/*), arxiu d'àudio (audio/*), o text/csv. Si el script és bloquejat, un error s'envia a l'element, sinó s'envia un esdeveniment success.
| Categories de contingut | Contingut Metadata, Contingut dinàmic, Phrasing content. |
|---|---|
| Contingut permès | Script dinàmic com text/javascript. |
| Omissió de l'etiqueta | Cap, tant l'etiqueta inicial com l’etiqueta final són obligatòries |
| Elements pares permesos | Qualsevol element que accepti contingut Metadata, o qualsevol element que accepti phrasing content. |
| Interfície DOM | HTMLScriptElement |
Atributs
Aquest element inclou els atributs globals.
asyncHTML5- Establir aquest atribut booleà per indicar que el navegador hauria, si és possible, executar l'script de manera asincrònica. No té cap efecte sobre els scripts en línia (és a dir, scripts que no tenen l'atribut src).
- Veure Browser compatibility notes sobre el suport del navegador. Veure Async scripts per asm.js.
integrity- Conté metadades en línia que un agent d'usuari pot utilitzar per verificar que un recurs recuperat ha estat lliurat sense manipulació inesperada. Veure Integritat de subrecursos.
src- Aquest atribut especifica l'URI d'un script extern; això es pot utilitzar com una alternativa per a la incorporació d'un script directament dins d'un document. Si un element de script té un atribut
srcespecificat, no ha de tenir un script incrustat dins les seves etiquetes. type- Aquest atribut identifica el llenguatge de script de codi incrustat dins d'un element de script o referenciat a través de l'atribut src de l'element. Això s'especifica com un tipus MIME; exemples dels tipus MIME suportats inclouen
text/javascript,text/ecmascript,application/javascript, iapplication/ecmascript. Si aquest atribut està absent, el script és tractat com JavaScript. - Si el tipus MIME especificat no és un tipus JavaScript escriviu el contingut incrustat dins les seves etiquetes, es tracta com un bloc de dades que no serà processada pel navegador.
- Si el tipus especificat és mòdul el codi es tracta com un mòdul de JavaScript . Veure ES6 en Profunditat: Mòduls
Recordeu que Firefox pot utilitzar les funcions avançades com ara deixar que les declaracions i altres característiques en les versions posteriors JS, mitjançant l'ústype=application/javascript;version=1.8. Aneu amb compte, però, que aquesta és una característica no estàndard, això farà que probablement s'interrompi el suport per a altres navegadors, en particular els navegadors basats en Chromium. - Per la manera d'incloure els llenguatges de programació exòtics, llegir sobre Rosetta.
text- Igual que l'atribut
textContent, aquest atribut estableix el contingut de text de l'element. A diferència de l'atributtextContent, aquest atribut s'avalua com a codi executable després que el node s'insereix en el DOM. language- Igual que l'atribut
type, aquest atribut identifica el llenguatge de script en ús. A diferència de l'atributtype, els possibles valors d'aquest atribut mai van ser estandarditzats. L'atributtypes'ha d'utilitzar al seu lloc defer- Aquest atribut booleà s'estableix per indicar a un navegador que el script està destinat a ser executat després que el document s'ha analitzat, però abans de activar
DOMContentLoaded. L'atributdeferno ha de ser utilitzat en els scripts que no tenen l'atributsrc. crossorigin- Elements normals dels scripts passen un mínim d'informació a
window.onerrorpels scripts que no passen els controls estàndard CORS Per permetre el registre d'errors per als llocs que utilitzen un domini separat per als medis estàtics, utilitzeu aquest atribut.
Exemples
<!-- HTML4 and (x)HTML --> <script type="text/javascript" src="javascript.js"></script> <!-- HTML5 --> <script src="javascript.js"></script>
Especificacions
| Especificació | Estat | Comentari |
|---|---|---|
| WHATWG HTML Living Standard The definition of '<script>' in that specification. |
Living Standard | Afegeix el mòdul type |
| HTML5 The definition of '<script>' in that specification. |
Recommendation | |
| HTML 4.01 Specification The definition of '<script>' in that specification. |
Recommendation | |
| Subresource Integrity The definition of '<script>' in that specification. |
Recommendation | Afegeix l'atribut integrity. |
Navegadors compatibles
| Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Suport bàsic | 1.0 | 1.0 (1.7 or earlier)[2] | (Yes) | (Yes) | (Yes) |
| atribut async | (Yes)[1] | 3.6 (1.9.2)[1] | 10[1] | 15[1] | (Yes)[1] |
| atribut defer | (Yes) | 3.5 (1.9.1)[6] |
4[3] |
No support | (Yes) |
| atribut crossorigin | 30.0 | 13 (13) | No support | 12.50 | (Yes)[4] |
| atribut integrity | 45.0 | 43 (43) | No support[5] |
| Característica | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
|---|---|---|---|---|---|---|---|
| Suport bàsic | (Yes) | (Yes) | 1.0 (1.0)[2] | (Yes) | (Yes) | (Yes) | (Yes) |
| atribut async | (Yes)[1] | (Yes)[1] | 1.0 (1.0)[1] | No support[1] | ?[1] | (Yes)[1] | (Yes)[1] |
| atribut defer | (Yes) | (Yes) | 1.0 (1.0) | No support | ? | (Yes) | (Yes) |
| atribut integrity | No support | 45.0 | 43 (43) | 45.0 |
[1] En navegadors antics que no suporten l'atribut async, els scripts inserits en l'analitzador bloquegen l'analitzador; en scripts inserits s'executen els scripts de forma asncrònica en IE i WebKit, però de forma sincrònica a Opera i Firefox pre-4.0. En Firefox 4.0, la propietat DOM async es converteix per defecte en true pels scripts creats per script, per la qual cosa el comportament predeterminat coincideix amb el comportament de IE i WebKit.. En la sol·licitud d'inserció de scripts externs, els scripts s'executaran en l'ordre d'inserció en els navegadors on document.createElement("script").async estigui avaluat a true (com Firefox 4.0), establir .async=false en els scripts que desitjeu mantenir l'ordre. Mai crideu a document.write() des d'un script async. En Gecko 1.9.2, cridar a document.write() té un efecte impredictible. En Gecko 2.0, cridar a document.write() des d'un script async no té cap efecte (que no sigui la impressió d'un advertiment a la consola d'errors).
[2] A partir de Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1), inserir elements de script que s'han creat en cridar a document.createElement("script") al DOM ja no imposa l'execució en ordre d'inserció. Aquest canvi permet a Gecko complir adequadament amb l'especificació HTML5. Perquè els scripts externs inserits en scripts s'executin en el seu ordre d'inserció, establiu .async=false en ells.
A més, els elements <script> dins d'elements <iframe>, <noembed> i <noframes> són ara executats, per les mateixes raons.
[3] En les versions anteriors a Internet Explorer 10 Trident implementava <script> per una especificació propietària. Des de la versió 10 s'ajusta a l'especificació W3C.
[4] L'atribut crossorigin es va implementar en WebKit en WebKit errada 81438.
[5] WebKit errada 148363 seguiment de l'implementació a WebKit el Subresource Integrity (que inclou l'atribut integrity).
[6] Des Gecko 1.9.2 (Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0), l'atribut defer és ignorat en scripts que no tenen l'atribut src. No obstant això, en Gecko 1.9.1 (Firefox 3.5 / Thunderbird 3.0 / SeaMonkey 2.0) els scripts en línia es diferiran si s'estableix l'atribut defer.