Este elemento incluye los atributos globales.
async
Para los scripts clásicos, si el atributo async
está presente, entonces el script clásico será obtenido en paralelo al parsing y evaluado tan pronto como esté disponible.
Para los scripts de módulos, si el atributo async
está presente, los scripts y todas sus dependencias se ejecutarán en la cola de aplazamiento, por lo que se obtendrán en paralelo al análisis sintáctico y se evaluarán tan pronto como estén disponibles.
Este atributo permite eliminar el JavaScript que bloquea el análisis sintáctico, donde el navegador tendría que cargar y evaluar los scripts antes de continuar con el análisis sintáctico. defer
tiene un efecto similar en este caso.
Se trata de un atributo booleano: la presencia de un atributo booleano en un elemento representa el valor verdadero, y la ausencia del atributo representa el valor falso.
Vea Compatibilidad con navegadores para obtener notas sobre la compatibilidad con navegadores. Véase también Scripts asíncronos para asm.js.
crossorigin
Los elementosscript
pasan información mínima a loswindow.onerror
para los scripts que no pasan las comprobaciones CORS estándar. Para permitir el registro de errores para los sitios que utilizan un dominio separado para los medios estáticos, utilice este atributo. Consulte los atributos de configuración de CORS para obtener una explicación más descriptiva de sus argumentos válidos.defer
Este atributo booleano se establece para indicar a un navegador que la secuencia de comandos está destinada a ejecutarse después de analizar el documento, pero antes de disparar DOMContentLoaded
.
Los scripts con el atributo defer
evitarán que el evento DOMContentLoaded
se dispare hasta que el script se haya cargado y terminado de evaluar.
src
está ausente (es decir, para scripts inline).es decir, para los scripts en línea), en este caso no tendría ningún efecto.
El atributo defer
no tiene ningún efecto en los scripts de los módulos – se difieren por defecto.
Los scripts con el atributo defer
se ejecutarán en el orden en que aparezcan en el documento.
Este atributo permite eliminar el JavaScript que bloquea el parser, donde el navegador tendría que cargar y evaluar los scripts antes de continuar con el parseo. async
tiene un efecto similar en este caso.
integrity
Este atributo contiene metadatos en línea que un agente de usuario puede utilizar para verificar que un recurso obtenido ha sido entregado libre de manipulaciones inesperadas. Véase Integridad de los subrecursos.
nomodule
Este atributo booleano se establece para indicar que la secuencia de comandos no debe ejecutarse en los navegadores que admiten módulos ES2015; en efecto, esto puede utilizarse para servir secuencias de comandos de reserva a los navegadores más antiguos que no admiten código JavaScript modular.nonce
Un nonce criptográfico (número que se utiliza una vez) para poner en la lista blanca los scripts en una política de seguridad de contenido script-src. El servidor debe generar un valor nonce único cada vez que transmite una política. Es fundamental proporcionar un nonce que no pueda ser adivinado, ya que saltarse la política de un recurso es de otro modo trivial.referrerpolicy
Indica qué referente enviar cuando se obtiene el script, o los recursos obtenidos por el script:
-
no-referrer
: No se enviará la cabeceraReferer
. -
no-referrer-when-downgrade
(por defecto): La cabeceraReferer
no se enviará a los orígenes sin TLS (HTTPS). -
origin
: El referrer enviado se limitará al origen de la página referente: su esquema, host y puerto. -
origin-when-cross-origin
: El referrer enviado a otros orígenes se limitará al esquema, el host y el puerto. Las navegaciones en el mismo origen seguirán incluyendo la ruta. -
same-origin
: Se enviará un referrer para el mismo origen, pero las peticiones de origen cruzado no contendrán información de referrer. -
strict-origin
: Sólo envíe el origen del documento como referente cuando el nivel de seguridad del protocolo se mantenga igual (por ejemplo, HTTPS→HTTPS), pero no lo envíe a un destino menos seguro (por ejemplo, HTTPS→HTTP). -
strict-origin-when-cross-origin
: Envíe una URL completa cuando realice una solicitud de mismo origen, pero sólo envíe el origen cuando el nivel de seguridad del protocolo se mantenga igual (por ejemplo, HTTPS→HTTPS).g.HTTPS→HTTPS), y no enviar ninguna cabecera a un destino menos seguro (e.g. HTTPS→HTTP). -
unsafe-url
: El referrer incluirá el origen y la ruta (pero no el fragmento, la contraseña o el nombre de usuario). Este valor no es seguro, porque filtra orígenes y rutas de recursos protegidos por TLS a orígenes inseguros.
Nota: Un valor de cadena vacía (""
) es tanto el valor por defecto, como un valor de reserva si referrerpolicy
no es compatible. Si referrerpolicy
no se especifica explícitamente en el elemento <script>
, adoptará una política de referencia de nivel superior, es decir, una establecida en todo el documento o dominio. Si no se dispone de una política de nivel superior, la cadena vacía se tratará como equivalente a no-referrer-when-downgrade
.
src
Este atributo especifica el URI de un script externo; puede utilizarse como alternativa a la incrustación de un script directamente dentro de un documento.
type
Este atributo indica el tipo de script representado. El valor de este atributo estará en una de las siguientes categorías:
- Omitido o un tipo MIME de JavaScript: Esto indica que el script es JavaScript. La especificación HTML5 insta a los autores a omitir el atributo en lugar de proporcionar un tipo MIME redundante. En navegadores anteriores, esto identificaba el lenguaje de scripting del código incrustado o importado (a través del atributo
src
). Los tipos MIME de JavaScript se enumeran en la especificación. -
module
: Hace que el código sea tratado como un módulo JavaScript. El procesamiento del contenido del script no se ve afectado por los atributoscharset
ydefer
. Para obtener información sobre el uso demodule
, consulte nuestra guía de módulos de JavaScript. A diferencia de los scripts clásicos, los scripts de módulos requieren el uso del protocolo CORS para la obtención de origen cruzado. - Cualquier otro valor: El contenido incrustado se trata como un bloque de datos que no será procesado por el navegador. Los desarrolladores deben utilizar un tipo MIME válido que no sea un tipo MIME de JavaScript para denotar los bloques de datos. El atributo
src
será ignorado.