diff options
Diffstat (limited to 'files/ca/web/html/element/script/index.html')
-rw-r--r-- | files/ca/web/html/element/script/index.html | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/files/ca/web/html/element/script/index.html b/files/ca/web/html/element/script/index.html new file mode 100644 index 0000000000..44d8b22278 --- /dev/null +++ b/files/ca/web/html/element/script/index.html @@ -0,0 +1,255 @@ +--- +title: <script> +slug: Web/HTML/Element/script +tags: + - Element + - HTML + - HTML scripting + - Reference + - Web +translation_of: Web/HTML/Element/script +--- +<p>L'element <code><strong><script></strong></code> (o <em>element HTML script "Seqüència de comandaments"</em> ) s'utilitza per inserir o fer referència a un script executable dins d'un document <abbr title="Hypertext Markup Language">HTML</abbr> or <abbr title="Extensible Hypertext Markup Language">XHTML</abbr>.</p> + +<p>Els scripts sense atributs <code>async</code> o <code>defer</code>, així com els scripts en línia, es capten i s'executen immediatament, abans que el navegador segueixi analitzant la pàgina.</p> + +<p>El script ha de ser servit amb el tipus <code>text/javascript</code> MIME, però els navegadors són indulgents i només bloquejan si el script es serveix amb un tipus d'imatge (<code>image/*</code>), de vídeo (<code>video/*</code>), arxiu d'àudio (<code>audio/*</code>), o <code>text/csv</code>. Si el script és bloquejat, un {{event("error")}} s'envia a l'element, sinó s'envia un esdeveniment {{event("success")}}.</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row"><a href="/en-US/docs/Web/HTML/Content_categories" title="HTML/Content_categories">Categories de contingut</a></th> + <td><a href="/en-US/docs/Web/HTML/Content_categories#Metadata_content" title="HTML/Content_categories#Metadata_content">Contingut Metadata</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Flow_content" title="HTML/Content_categories#Flow_content">Contingut dinàmic</a>, <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content" title="HTML/Content_categories#Phrasing_content">Phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Contingut permès</th> + <td>Script dinàmic com <code>text/javascript</code>.</td> + </tr> + <tr> + <th scope="row">Omissió de l'etiqueta</th> + <td>{{no_tag_omission}}</td> + </tr> + <tr> + <th scope="row">Elements pares permesos</th> + <td>Qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Metadata_content" title="HTML/Content_categories#Metadata_content">contingut Metadata</a>, o qualsevol element que accepti <a href="/en-US/docs/Web/HTML/Content_categories#Phrasing_content">phrasing content</a>.</td> + </tr> + <tr> + <th scope="row">Interfície DOM</th> + <td>{{domxref("HTMLScriptElement")}}</td> + </tr> + </tbody> +</table> + +<h2 id="Atributs">Atributs</h2> + +<p>Aquest element inclou els <a href="/en-US/docs/Web/HTML/Global_attributes">atributs globals</a>.</p> + +<dl> + <dt>{{htmlattrdef("async")}} {{HTMLVersionInline(5)}}</dt> + <dd>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 <strong>src</strong>).</dd> + <dd>Veure {{anch("Browser compatibility")}} <span id="result_box" lang="ca"><span>notes</span> <span>sobre el suport del</span> <span>navegador.</span></span> Veure <a href="/en-US/docs/Games/Techniques/Async_scripts">Async scripts per asm.js</a>.</dd> + <dt>{{htmlattrdef("integrity")}}</dt> + <dd>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 <a href="/en-US/docs/Web/Security/Subresource_Integrity">Integritat de subrecursos</a>.</dd> + <dt>{{htmlattrdef("src")}}</dt> + <dd>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 <code>src</code> especificat, no ha de tenir un script incrustat dins les seves etiquetes.</dd> + <dt>{{htmlattrdef("type")}}</dt> + <dd>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 <code>text/javascript</code>, <code>text/ecmascript</code>, <code>application/javascript</code>, i <code>application/ecmascript</code>. Si aquest atribut està absent, el script és tractat com JavaScript.</dd> + <dd>Si el tipus <abbr title="Multi-purpose Internet Mail Extensions">MIME</abbr> 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.</dd> + <dd>Si el tipus especificat és mòdul el codi es tracta com un mòdul de JavaScript {{experimental_inline}}. Veure <a class="external external-icon" href="https://hacks.mozilla.org/2015/08/es6-in-depth-modules/">ES6 en Profunditat: Mòduls</a><br> + <br> + 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'ús <code>type=application/javascript;version=1.8</code> {{Non-standard_inline}}. 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.</dd> + <dd><span id="result_box" lang="ca"><span>Per</span> <span>la manera d'incloure</span> <span>els</span> <em><span>llenguatges</span> <span>de programació</span> <span>exòtics</span></em><span>, llegir</span> <span>sobre</span></span> <a href="/en-US/Add-ons/Code_snippets/Rosetta">Rosetta</a>.</dd> + <dt>{{htmlattrdef("text")}}</dt> + <dd>Igual que l'atribut <code>textContent</code>, aquest atribut estableix el contingut de text de l'element. A diferència de l'atribut <code>textContent</code>, aquest atribut s'avalua com a codi executable després que el node s'insereix en el DOM.</dd> + <dt>{{htmlattrdef("language")}} {{Deprecated_inline}}</dt> + <dd>Igual que l'atribut <code>type</code>, aquest atribut identifica el llenguatge de script en ús. A diferència de l'atribut <code>type</code>, els possibles valors d'aquest atribut mai van ser estandarditzats. L'atribut <code>type</code> s'ha d'utilitzar al seu lloc</dd> + <dt>{{htmlattrdef("defer")}}</dt> + <dd>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 {{event("DOMContentLoaded")}}. L'atribut <code>defer</code> no ha de ser utilitzat en els scripts que no tenen l'atribut <code>src</code>.</dd> + <dt>{{htmlattrdef("crossorigin")}}</dt> + <dd>Elements normals dels scripts passen un mínim d'informació a {{domxref('GlobalEventHandlers.onerror', 'window.onerror')}} pels scripts que no passen els controls estàndard <a href="/en-US/docs/HTTP_access_control">CORS</a> Per permetre el registre d'errors per als llocs que utilitzen un domini separat per als medis estàtics, utilitzeu aquest atribut.</dd> +</dl> + +<h2 id="Exemples">Exemples</h2> + +<pre class="brush: html"><!-- HTML4 and (x)HTML --> +<script type="text/javascript" src="javascript.js"></script> + +<!-- HTML5 --> +<script src="javascript.js"></script> +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentari</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('HTML WHATWG', "scripting.html#the-script-element", "<script>")}}</td> + <td>{{Spec2('HTML WHATWG')}}</td> + <td>Afegeix el mòdul type</td> + </tr> + <tr> + <td>{{SpecName('HTML5 W3C', 'scripting-1.html#script', '<script>')}}</td> + <td>{{Spec2('HTML5 W3C')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('HTML4.01', 'interact/scripts.html#h-18.2.1', '<script>')}}</td> + <td>{{Spec2('HTML4.01')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('Subresource Integrity', '#htmlscriptelement', '<script>')}}</td> + <td>{{Spec2('Subresource Integrity')}}</td> + <td>Afegeix l'atribut integrity.</td> + </tr> + </tbody> +</table> + +<h2 id="Navegadors_compatibles">Navegadors compatibles</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatChrome(1.0)}}</td> + <td>{{CompatGeckoDesktop("1.0")}}<sup>[2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut async</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatGeckoDesktop("1.9.2")}}<sup>[1]</sup></td> + <td>10<sup>[1]</sup></td> + <td>15<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + </tr> + <tr> + <td>atribut defer</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoDesktop("1.9.1")}}<sup>[6]</sup></td> + <td> + <p>4<sup>[3]</sup><br> + 10</p> + </td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut crossorigin</td> + <td>{{CompatChrome(30.0)}}</td> + <td>{{CompatGeckoDesktop("13")}}</td> + <td>{{CompatNo}}</td> + <td>12.50</td> + <td>{{CompatVersionUnknown}}<sup>[4]</sup></td> + </tr> + <tr> + <td>atribut integrity</td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatGeckoDesktop("43")}}</td> + <td> </td> + <td> </td> + <td>{{CompatNo}}<sup>[5]</sup></td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Android Webview</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + <th>Chrome for Android</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}<sup>[2]</sup></td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut async</td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatGeckoMobile("1.0")}}<sup>[1]</sup></td> + <td>{{CompatNo}}<sup>[1]</sup></td> + <td>{{CompatUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + <td>{{CompatVersionUnknown}}<sup>[1]</sup></td> + </tr> + <tr> + <td>atribut defer</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatGeckoMobile("1.0")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatVersionUnknown}}</td> + </tr> + <tr> + <td>atribut integrity</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome(45.0)}}</td> + <td>{{CompatGeckoDesktop("43")}}</td> + <td> </td> + <td> </td> + <td> </td> + <td>{{CompatChrome(45.0)}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] En navegadors antics que no suporten l'atribut <code>async</code>, 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 <code>async</code> es converteix per defecte en <code>true</code> 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 <code>document.createElement("script").async</code> estigui avaluat a <code>true</code> (com Firefox 4.0), establir <code>.async=false</code> en els scripts que desitjeu mantenir l'ordre. Mai crideu a <code>document.write()</code> des d'un script <code>async</code>. En Gecko 1.9.2, cridar a <code>document.write()</code> té un efecte impredictible. En Gecko 2.0, cridar a <code>document.write()</code> des d'un script <code>async</code> no té cap efecte (que no sigui la impressió d'un advertiment a la consola d'errors).</p> + +<p>[2] A partir de Gecko 2.0 {{geckoRelease ( "2.0")}}, inserir elements de script que s'han creat en cridar a <code>document.createElement("script")</code> 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 <code>.async=false</code> en ells.</p> + +<p>A més, els elements {{HTMLElement ("script")}} dins d'elements {{HTMLElement ("iframe")}}, {{HTMLElement ("noembed")}} i {{HTMLElement ("noframes")}} són ara executats, per les mateixes raons.</p> + +<p>[3] En les versions anteriors a Internet Explorer 10 Trident implementava <code><script></code> per una especificació propietària. Des de la versió 10 s'ajusta a l'especificació W3C.</p> + +<p>[4] L'atribut <code>crossorigin</code> es va implementar en WebKit en {{WebKitBug(81438)}}.</p> + +<p>[5] {{WebKitBug(148363)}} seguiment de l'implementació a WebKit el Subresource Integrity (que inclou l'atribut <code>integrity</code>).</p> + +<p>[6] Des Gecko 1.9.2 {{geckoRelease ("1.9.2")}}, l'atribut <code>defer</code> és ignorat en scripts que no tenen l'atribut <code>src</code>. No obstant això, en Gecko 1.9.1 {{geckoRelease ("1.9.1")}} els scripts en línia es diferiran si s'estableix l'atribut <code>defer</code>.</p> + +<h2 id="Veure">Veure</h2> + +<ul> + <li>{{domxref("document.currentScript")}}</li> + <li><a href="http://pieisgood.org/test/script-link-events/">Gràfic de compatibilitat d'esdeveniments de node <script> i <link> de Ryan Grove</a></li> +</ul> + +<p>{{HTMLRef}}</p> |