Cet élément comprend les attributs globaux.
async
Pour les scripts classiques, si l’attribut async
est présent, alors le script classique sera récupéré en parallèle de l’analyse syntaxique et évalué dès qu’il sera disponible.
Pour les scripts de module, si l’attribut async
est présent, alors les scripts et toutes leurs dépendances seront exécutés dans la file d’attente defer, donc ils seront récupérés en parallèle à l’analyse syntaxique et évalués dès qu’ils seront disponibles.
Cet attribut permet d’éliminer le JavaScript bloquant l’analyse syntaxique où le navigateur devrait charger et évaluer les scripts avant de continuer à analyser. defer
a un effet similaire dans ce cas.
C’est un attribut booléen : la présence d’un attribut booléen sur un élément représente la valeur vraie, et l’absence de l’attribut représente la valeur fausse.
Voir Compatibilité avec les navigateurs pour des notes sur la prise en charge des navigateurs. Voir également Scripts asynchrones pour asm.js.
crossorigin
Les éléments normauxscript
transmettent des informations minimales auxwindow.onerror
pour les scripts qui ne passent pas les contrôles CORS standard. Pour permettre la journalisation des erreurs pour les sites qui utilisent un domaine distinct pour les médias statiques, utilisez cet attribut. Voir les attributs de paramètres CORS pour une explication plus descriptive de ses arguments valides.defer
Cet attribut booléen est défini pour indiquer à un navigateur que le script est censé être exécuté après l’analyse du document, mais avant de tirer DOMContentLoaded
.
Les scripts dotés de l’attribut defer
empêcheront l’événement DOMContentLoaded
de se déclencher jusqu’à ce que le script ait été chargé et ait terminé son évaluation.
Cet attribut ne doit pas être utilisé si l’attribut src
est absent (c.c’est-à-dire pour les scripts en ligne), dans ce cas, il n’aurait aucun effet.
L’attribut defer
n’a aucun effet sur les scripts de module – ils reportent par défaut.
Les scripts avec l’attribut defer
s’exécuteront dans l’ordre dans lequel ils apparaissent dans le document.
Cet attribut permet d’éliminer le JavaScript bloquant l’analyseur où le navigateur devrait charger et évaluer les scripts avant de continuer à analyser. async
a un effet similaire dans ce cas.
integrity
Cet attribut contient des métadonnées en ligne qu’un agent utilisateur peut utiliser pour vérifier qu’une ressource extraite a été livrée sans manipulation inattendue. Voir l’intégrité des sous-ressources.nomodule
Cet attribut booléen est défini pour indiquer que le script ne doit pas être exécuté dans les navigateurs qui prennent en charge les modules ES2015 – en fait, cela peut être utilisé pour servir des scripts de repli aux anciens navigateurs qui ne prennent pas en charge le code JavaScript modulaire.nonce
Un nonce cryptographique (nombre utilisé une fois) pour mettre les scripts sur liste blanche dans une politique de sécurité de contenu script-src. Le serveur doit générer une valeur de nonce unique à chaque fois qu’il transmet une politique. Il est essentiel de fournir un nonce qui ne peut pas être deviné car le contournement de la politique d’une ressource est autrement trivial.referrerpolicy
Indique quel référent envoyer lors de la récupération du script, ou des ressources récupérées par le script :
-
no-referrer
: L’en-têteReferer
ne sera pas envoyé. -
no-referrer-when-downgrade
(par défaut) : L’en-têteReferer
ne sera pas envoyé aux origines sans TLS (HTTPS). -
origin
: Le référent envoyé sera limité à l’origine de la page de référence : son schéma, son hôte et son port. -
origin-when-cross-origin
: Le référent envoyé aux autres origines sera limité au schéma, à l’hôte et au port. Les navigations sur la même origine incluront toujours le chemin d’accès. -
same-origin
: Un référent sera envoyé pour la même origine, mais les demandes d’origine croisée ne contiendront aucune information de référent. -
strict-origin
: Envoyez uniquement l’origine du document en tant que référent lorsque le niveau de sécurité du protocole reste le même (par ex. HTTPS→HTTPS), mais ne l’envoyez pas vers une destination moins sécurisée (par ex. HTTPS→HTTP). -
strict-origin-when-cross-origin
: Envoyez une URL complète lors de l’exécution d’une demande de même origine, mais n’envoyez que l’origine lorsque le niveau de sécurité du protocole reste le même (par ex.HTTPS→HTTPS), et n’envoyer aucun en-tête vers une destination moins sécurisée (par exemple HTTPS→HTTP). -
unsafe-url
: Le référent inclura l’origine et le chemin (mais pas le fragment, le mot de passe ou le nom d’utilisateur). Cette valeur n’est pas sûre, car elle laisse fuir les origines et les chemins des ressources protégées par TLS vers des origines non sécurisées.
Note : Une valeur de chaîne vide (""
) est à la fois la valeur par défaut, et une valeur de repli si referrerpolicy
n’est pas prise en charge. Si referrerpolicy
n’est pas explicitement spécifié sur l’élément <script>
, il adoptera une politique de référent de niveau supérieur, c’est-à-dire une politique définie sur l’ensemble du document ou du domaine. Si une politique de niveau supérieur n’est pas disponible, la chaîne vide est traitée comme étant équivalente à no-referrer-when-downgrade
.
src
Cet attribut spécifie l’URI d’un script externe ; cela peut être utilisé comme une alternative à l’intégration d’un script directement dans un document.
type
Cet attribut indique le type de script représenté. La valeur de cet attribut sera dans l’une des catégories suivantes :
- Omit ou un type MIME JavaScript : Cela indique que le script est du JavaScript. La spécification HTML5 incite les auteurs à omettre cet attribut plutôt que de fournir un type MIME redondant. Dans les navigateurs antérieurs, cet attribut identifiait le langage de script du code incorporé ou importé (via l’attribut
src
). Les types de MIME JavaScript sont répertoriés dans la spécification. -
module
: Fait en sorte que le code soit traité comme un module JavaScript. Le traitement du contenu du script n’est pas affecté par les attributscharset
etdefer
. Pour plus d’informations sur l’utilisation demodule
, consultez notre guide des modules JavaScript. Contrairement aux scripts classiques, les scripts de modules nécessitent l’utilisation du protocole CORS pour la récupération inter-origine. - Toute autre valeur : Le contenu intégré est traité comme un bloc de données qui ne sera pas traité par le navigateur. Les développeurs doivent utiliser un type MIME valide qui n’est pas un type MIME JavaScript pour désigner les blocs de données. L’attribut
src
sera ignoré.