---
title: '
```
### Utilisation des modules et d'une alternative
Les navigateurs qui prennent en charge le type `module` prennent également en charge un attribut `nomodule` qui permet aux navigateurs qui ne gèrent pas les modules d'utiliser un autre script.
```html
```
## Résumé technique
## Spécifications
| Spécification | État | Commentaires |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------------- |
| {{SpecName("HTML WHATWG", "scripting.html#the-script-element", "<script>")}} | {{Spec2("HTML WHATWG")}} | Retrait de l'attribut {{HTMLAttrxRef("charset", "script")}}. |
| {{SpecName("HTML5.3", "semantics-scripting.html#the-script-element", "<script>")}} | {{Spec2("HTML5.3")}} | Retrait de l'attribut {{HTMLAttrxRef("charset", "script")}}. |
| {{SpecName("HTML5.2", "semantics-scripting.html#the-script-element", "<script>")}} | {{Spec2("HTML5.2")}} | Ajout de la valeur `module` pour {{HTMLAttrxRef("type", "script")}} |
| {{SpecName("HTML5.1", "semantics-scripting.html#the-script-element", "<script>")}} | {{Spec2("HTML5.1")}} | |
| {{SpecName("HTML5 W3C", "scripting-1.html#script", "<script>")}} | {{Spec2("HTML5 W3C")}} | |
| {{SpecName("HTML4.01", "interact/scripts.html#h-18.2.1", "<script>")}} | {{Spec2("HTML4.01")}} | |
| {{SpecName("Subresource Integrity", "#htmlscriptelement", "<script>")}} | {{Spec2("Subresource Integrity")}} | Ajout de l'attribut {{HTMLAttrxRef("integrity", "script")}}. |
## Compatibilité des navigateurs
{{Compat("html.elements.script",2)}}
### Notes de compatibilité
Pour les anciens navigateurs qui ne prennent pas en charge l'attribut `async` attribute, les scripts insérés lors de l'analyse (_parsing_) bloquent l'analyseur, les scripts insérés par d'autres scripts s'exécutent en asynchrone sous IE et WebKit et en synchrone sous Opera et sous Firefox pour les versions antérieures à Firefox 4.0.
Sous Firefox 4.0, la propriété `async` du DOM vaut `true` par défaut pour les scripts créés avec `document.createElement("script").async` afin que le comportement par défaut corresponde au comportement d'IE et de WebKit. Afin que les scripts insérés par des scripts externes soient lancés dans l'ordre d'insertion, on définira `.async=false` pour les scripts dont on souhaite conserver l'ordre d'exécution.
`document.write()` ne doit jamais être appelé sur un script asynchrone avec `async`. Sous Gecko 1.9.2, si on appelle `document.write()`, cela aura un effet imprévisible. Pour Gecko 2.0, appeler `document.write()` depuis un script asynchrone n'aura aucun effet (en dehors d'afficher un message d'erreur dans la console).
## Voir aussi
- {{domxref("document.currentScript")}}
- [Les formats de date et d'heure utilisés en HTML](/fr/docs/Web/HTML/Formats_date_heure_HTML)
- [Guide sur les modules JavaScript](/fr/docs/Web/JavaScript/Guide/Modules)
- [Tableau de compatibilité de Ryan Grove pour les évènements liés aux éléments `