Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
HTMLScriptElement
Baseline Widely available *
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
Les éléments HTML<script> exposent l'interfaceHTMLScriptElement. Cette interface fournit des propriétés et des méthodes pour définir le comportement et l'exécution des éléments<script> (en plus de celles héritées deHTMLElement).
Les fichiers JavaScript doivent être servis avec le typeMIMEtext/javascript. Les navigateurs acceptent ce type et bloquent le script uniquement s'il est servi avec un type image (image/*), vidéo (video/*), audio (audio/*) outext/csv. Si le script est bloqué, l'élément reçoit l'évènementerror ; sinon, il reçoit l'évènementload.
Note :Lorsqu'ils sont insérés à l'aide de la méthodeDocument.write(), les éléments HTML<script> s'exécutent (généralement de manière synchrone), mais lorsqu'ils sont insérés à l'aide deElement.innerHTML ouElement.outerHTML, ils ne s'exécutent pas du tout.
Dans cet article
Propriétés d'instance
Hérite des propriétés de son parent,HTMLElement.
HTMLScriptElement.attributionSrcContexte sécuriséObsolèteObtient et définit l'attribut
attributionsrcsur un élément<script>par programmation, reflétant la valeur de cet attribut.attributionsrcindique que vous souhaitez que le navigateur envoie un en-têteAttribution-Reporting-Eligibleavec la requête de ressource du script. Côté serveur, cela sert à déclencher l'envoi d'un en-têteAttribution-Reporting-Register-SourceouAttribution-Reporting-Register-Triggerdans la réponse, afin d'enregistrer respectivement unesource d'attribution ou undéclencheur d'attribution basé sur JavaScript.HTMLScriptElement.asyncUn booléen qui définit la façon dont le script doit être exécuté. Pour les scripts classiques, si la propriété
asyncest àtrue, le script externe est récupéré en parallèle de l'analyse et évalué dès qu'il est disponible. Pour lesmodules, si la propriétéasyncest àtrue, le script et toutes ses dépendances sont récupérés en parallèle de l'analyse et évalués dès qu'ils sont disponibles.HTMLScriptElement.blockingUne chaîne de caractères indiquant que certaines opérations doivent être bloquées lors de la récupération du script. Elle reflète l'attribut
blockingde l'élément<script>.HTMLScriptElement.charsetObsolèteUne chaîne de caractères représentant l'encodage du script externe. Elle reflète l'attribut
charset.HTMLScriptElement.crossOriginUne chaîne de caractères reflétant leparamètre CORS pour l'élément script. Pour les scripts classiques provenant d'autresorigines, cela définit si les informations d'erreur seront exposées.
HTMLScriptElement.deferUn booléen qui définit la façon dont le script doit être exécuté. Pour les scripts classiques, si la propriété
deferest àtrue, le script externe est exécuté après l'analyse du document, mais avant le déclenchement de l'évènementDOMContentLoaded. Pour lesmodules, la propriétédefern'a aucun effet.HTMLScriptElement.eventObsolèteUne chaîne de caractères ; méthode obsolète pour enregistrer des gestionnaires d'évènements sur les éléments d'un document HTML.
HTMLScriptElement.fetchPriorityUne chaîne de caractères optionnelle représentant une indication donnée au navigateur sur la priorité de récupération d'un script externe par rapport aux autres scripts externes. Si cette valeur est fournie, elle doit être l'une des valeurs autorisées :
highpour une priorité élevée,lowpour une priorité faible, ouautopour indiquer aucune préférence (valeur par défaut). Elle reflète l'attributfetchpriorityde l'élément<script>.HTMLScriptElement.innerTextUne propriété qui représente le contenu texte en ligne de l'élément HTML
<script>comme s'il était du texte rendu.La propriété accepte soit un objetTrustedScriptsoit une chaîne de caractères.HTMLScriptElement.integrityUne chaîne de caractères contenant des métadonnées intégrées que le navigateur peut utiliser pour vérifier qu'une ressource récupérée n'a pas été modifiée de façon inattendue. Elle reflète l'attribut
integrityde l'élément<script>.HTMLScriptElement.noModuleUn booléen qui, si elle est vraie, empêche l'exécution du script dans les navigateurs qui prennent en charge lesmodules ES — utilisé pour exécuter des scripts de secours dans les anciens navigateurs qui ne prennentpas en charge les modules JavaScript.
HTMLScriptElement.referrerPolicyUne chaîne de caractères reflétant l'attribut HTML
referrerPolicyqui définit le référent à utiliser lors de la récupération du script et des requêtes effectuées par ce script.HTMLScriptElement.srcUn objet
TrustedScriptURLou une chaîne de caractères représentant l'URL d'un script externe ; cela peut être utilisé comme alternative à l'intégration directe d'un script dans un document. Elle reflète l'attributsrcde l'élément<script>.HTMLScriptElement.textUne propriété qui représente le contenu texte en ligne de l'élément HTML
<script>.La propriété accepte soit un objetTrustedScriptsoit une chaîne de caractères.Elle se comporte de la même manière que la propriététextContent.HTMLScriptElement.textContentUne propriété qui représente le contenu texte en ligne de l'élément HTML
<script>.La propriété est redéfinie depuis l'objetNodepour prendre en chargeTrustedScriptcomme valeur d'entrée.Sur cet élément, elle se comporte exactement comme la propriététext.HTMLScriptElement.typeUne chaîne de caractères représentant le type du script. Elle reflète l'attribut
typede l'élément<script>.
Méthodes statiques
HTMLScriptElement.supports()Retourne
truesi le navigateur prend en charge les scripts du type spécifié, etfalsesinon.Cette méthode fournit un moyen simple et unifié de détecter les fonctionnalités liées aux scripts.
Méthodes d'instance
Aucune méthode spécifique ; hérite des méthodes de son parent,HTMLElement.
Évènements
Aucun évènement spécifique ; hérite des évènements de son parent,HTMLElement.
Exemples
>Importation dynamique de scripts
Créons une fonction qui importe de nouveaux scripts dans un document en créant un nœud<script>juste avant le<script> qui héberge le code suivant (viadocument.currentScript).Ces scripts seront exécutésde façon asynchrone.Pour plus de détails, voir les propriétésdefer etasync.
function loadError(oError) { throw new URIError( `Le script ${oError.target.src} n'a pas pu être chargé correctement.`, );}function prefixScript(url, onloadFunction) { const newScript = document.createElement("script"); newScript.onerror = loadError; if (onloadFunction) { newScript.onload = onloadFunction; } document.currentScript.parentNode.insertBefore( newScript, document.currentScript, ); newScript.src = url;}La fonction suivante, au lieu d'insérer les nouveaux scripts juste avant l'élémentdocument.currentScript, les ajoute comme enfants de la balise<head>.
function loadError(oError) { throw new URIError( `Le script ${oError.target.src} n'a pas pu être chargé correctement.`, );}function affixScriptToHead(url, onloadFunction) { const newScript = document.createElement("script"); newScript.onerror = loadError; if (onloadFunction) { newScript.onload = onloadFunction; } document.head.appendChild(newScript); newScript.src = url;}Exemple d'utilisation :
affixScriptToHead("myScript1.js");affixScriptToHead("myScript2.js", () => { alert('Le script "myScript2.js" a été chargé correctement.');});Vérification de la prise en charge d'un type de script
HTMLScriptElement.supports() fournit un mécanisme unifié pour vérifier si un navigateur prend en charge des types de scripts particuliers.
L'exemple ci-dessous montre comment vérifier la prise en charge des modules, en utilisant l'existence de l'attributnoModule comme solution de repli.
function checkModuleSupport() { if ("supports" in HTMLScriptElement) { return HTMLScriptElement.supports("module"); } return "noModule" in document.createElement("script");}On suppose que les scripts classiques sont pris en charge par tous les navigateurs.
Spécifications
| Specification |
|---|
| HTML> # htmlscriptelement> |
Compatibilité des navigateurs
Voir aussi
- L'élément HTML
<script> - L'élément HTML
<noscript> document.currentScript- Workers Web (extraits de code similaires aux scripts mais exécutés dansun autre contexte global)