recursal/MDN huggingface dataset:
Document.selectedStyleSheetSet
==============================

Indique le nom du jeu de feuilles de styles actuellement utilisé.

Syntaxe
-------


```js
currentStyleSheetSet = document.selectedStyleSheetSet;

document.selectedStyleSheet = newStyleSheetSet;
```


En retour, `currentStyleSheetSet` indique le nom du jeu de feuilles de styles en cours d'utilisation. Vous pouvez aussi définir celui-ci en utilisant cette propriété.

La définition de la valeur de cette propriété équivaut à appeler `document.enableStyleSheetsForSet()` avec la valeur de `currentStyleSheetSet`, puis de définir la valeur de `lastStyleSheetSet` sur cette valeur.

**Note :** Cette valeur d'attribut est directe : sa modification affectera la valeur de l'attribut.

Exemple
-------


```js
console.log("Current style sheet set: " + document.selectedStyleSheetSet);

document.selectedStyleSheetSet = "Some other style sheet";
```


**Note :** Cet exemple vous aidera à comprendre la différence de comportement entre la définition de la valeur de `selectedStyleSheetSet` et l'appel de `document.enableStyleSheetsForSet()`.

Voir aussi
----------

* `document.lastStyleSheetSet`
* `document.preferredStyleSheetSet`
* `document.styleSheetSets`
* `document.enableStyleSheetsForSet()`
Spécifications
--------------

* HTML5: Alternate Style Sheets
Document.title
==============

Obtient ou défini le titre de la page.

Syntaxe
-------


```js
var docTitle = document.title;
```


`title` est la chaîne contenant le titre de la page. Si le titre a déjà été modifié par `document.title`, cela retournera cette valeur. Sinon cela retournera le titre par défaut de la page (voir les notes ci-dessous).


```js
document.title = newTitle;
```


`newTitle` sera le nouveau titre de la page. Le changement de titre affectera également la valeur de retour de `document.title`, le titre de la page dans le navigateur (généralement le nom de l'onglet dans votre navigateur), et affectera également le DOM de la page (le contenu de la balise HTML `<title>`).

Exemple
-------


```html
<!doctype html>
<html>
  <head>
    <title>Hello World!</title>
  </head>
  <body>
    <script>
 alert(document.title); // Affiche "Hello World!"
 document.title = "Goodbye World!";
 alert(document.title); // Affiche "Goodbye World!"
 </script>
  </body>
</html>
```

Spécification
-------------

* DOM Level 2 HTML: document.title
* HTML5
Document.location
=================

La propriété en lecture seule **`Document.location`** renvoie un objet `Location`, contenant les informations sur l'URL du document et fournit des moyens pour modifier cette URL ou charger une autre URL.

Bien que `Document.location` soit un objet `Location` en *lecture seule*, vous pouvez lui assigner un `DOMString`. Cela signifie que vous pouvez dans la plupart des cas utiliser document.location comme s'il s'agissait d'une chaîne de caractères: `document.location = 'http://www.example.com'` est un synonyme de `document.location.href = 'http://www.example.com'`.

Pour récupérer uniquement l'URL en tant que chaîne de caractères, la propriété `document.URL` peut également être utilisée.

Si le document courant n'est pas un contexte de navigation, la valeur renvoyée est *null*.

Syntaxe
-------


```js
locationObj = document.location;
document.location = "http://www.mozilla.org"; // équivalent à document.location.href = 'http://www.mozilla.org'
```

Exemple
-------


```js
console.log(document.location);
// Affiche un string-like
// "http://www.example.com/juicybits.html" dans la console
```

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # the-location-interface |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* L'interface de la valeur renvoyée, `Location`.
* Une information similaire mais attachée au contexte de navigation, `Window.location`
Document.readyState
===================

La valeur **Document.readyState** est une propriété de `document` qui décrit l'état de chargement du document.

À chaque évolution de la valeur, un évenement `readystatechange` est émis dans l'objet `document`.

Syntaxe
-------


```js
var string = document.readyState;
```

### Valeurs

La variable `readyState` peut valoir :

**`loading`**

Le `document` est encore en chargement.

**`interactive`**

Le document a été chargé, mais les ressources (images, scripts, css..) sont encore en cours d'acquisition. En revanche la structure DOM est générée, et `DOMContentLoaded` a été émis.

**`complete`**

Le document et toutes les sous-ressources ont été chargés, et `load` a été émis.

Exemples
--------

### Différents états de chargement


```js
switch (document.readyState) {
  case "loading":
    // Encore en chargement.
    break;
  case "interactive":
    // Le DOM est construit, on peut y accéder.
    var span = document.createElement("span");
    span.textContent = "A <span> element.";
    document.body.appendChild(span);
    break;
  case "complete":
    // La page est pleinement chargée.
    console.log(
      "The first CSS rule is: " + document.styleSheets[0].cssRules[0].cssText,
    );
    break;
}
```

### readystatechange comme alternative à DOMContentLoaded


```js
// alternative à DOMContentLoaded
document.onreadystatechange = function () {
  if (document.readyState == "interactive") {
    initApplication();
  }
};
```

### readystatechange comme alternative à load


```js
// alternative à load
document.onreadystatechange = function () {
  if (document.readyState == "complete") {
    initApplication();
  }
};
```

### readystatechange comme event listener pour insérer ou modifier le DOM avant DOMContentLoaded


```js
// Modification du document <body> dès que possible en utilisant un script externe
var bootstrap = function (evt) {
  if (evt.target.readyState === "interactive") {
    initLoader();
  } else if (evt.target.readyState === "complete") {
    initApp();
  }
};
document.addEventListener("readystatechange", bootstrap, false);
```

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # current-document-readiness |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* L'événement `readystatechange`
* L'événement `DOMContentLoaded`
* L'événement `load`
document.head
=============

Retourne l'élément `<head>` du document courant. S'il y a plus d'un élément <head>, le premier est retourné.

Syntaxe
-------


```js
var objRef = document.head;
```

Exemple
-------


```js
// en HTML: <head id="my-document-head">
var aHead = document.head;

alert(aHead.id); // "my-document-head";

alert(document.head === document.querySelector("head")); // true
```

Notes
-----

`document.head` est en lecture seule. Essayer d'assigner une valeur à cettre propriété échouera en silence ou lancera une `TypeError` si le mode strict d'ECMAScript est activé dans un navigateur Gecko.

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-document-head-dev |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `document.body`
Document.createExpression()
===========================

Cette méthode compile une `XPathExpression` qui peut ensuite être utilisée pour des évaluations (répétées).

Cette méthode doit être appelée sur le même document que celui sur lequel on exécutera l'expression.

Syntaxe
-------


```js
createExpression(xpathText, namespaceURLMapper)
```

### Paramètres

`xpathText`

Une chaîne de caractères qui est l'expression XPath à compiler.

`namespaceURLMapper`

Une fonction qui fait correspondre un préfixe d'espace de noms à une URL d'espace de noms (ou `null` si aucune correspondance est nécessaire).

### Valeur de retour

`XPathExpression`

Exemples
--------


```js
const xpathExpr = document.createExpression("//div");
const xpathResult = xpathExpr.evaluate(document); // renvoie un objet XPathResult
const nodeContext = document.querySelector("nav");
// Réutilise l'expression XPathExpression "xpathExpr"
const otherResult = xpathExpr.evaluate(nodeContext); // renvoie un objet XPathResult
```

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Document.evaluate()`
* `XPathExpression`
Document.styleSheetSets
=======================

Renvoie une liste active de tous les jeux de feuilles de styles actuellement disponibles.

Syntaxe
-------


```js
sets = document.styleSheetSets;
```


En retour, `sets` est une liste de jeux de feuilles de styles disponibles.

Exemple
-------

Étant donné un élément `<ul>` (liste) avec l'ID "sheetList", vous pouvez le remplir avec tous les noms de tous les jeux de feuilles de styles disponibles avec un code comme celui-ci :


```js
var list = document.getElementById("sheetList");
var sheets = document.styleSheetSets;

list.innerHTML = "";

for (var i = 0; i < sheets.length; i++) {
  var item = document.createElement("li");

  item.innerHTML = sheets[i];
  list.appendChild(item);
}
```

Notes
-----

La liste des jeux de feuilles de styles disponibles est construite par énumération de toutes les feuilles de styles disponibles pour le document, dans l'ordre dans lequel elles sont répertoriées dans l'attribut `document.styleSheets`, en ajoutant le `title` (*titre*) de chacune de celles en ayant un. Les doublons sont supprimés de la liste (en utilisant une comparaison sensible à la casse).

Spécifications
--------------

* HTML5 : Alternate Style Sheets
Voir aussi
----------

* `Stylesheet`
* `document.styleSheets`
* `document.lastStyleSheetSet`
* `document.preferredStyleSheetSet`
* `document.selectedStyleSheetSet`
* `document.enableStyleSheetsForSet()`
Document.mozSetImageElement()
=============================

**Non standard:** Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

Change l'élément utilisé comme arrière-plan CSS par un arrière-plan avec un ID d'élément d'arrière-plan donné.

Syntaxe
-------


```js
document.mozSetImageElement(imageElementId, imageElement);
```

### Paramètres

* `imageElementId` est une chaîne de caractères indiquant le nom d'un élément qui a été spécifié comme une image d'arrière-plan en utilisant la fonction CSS `-moz-element()` (en-US).
* `imageElement` est le nouvel élément à utiliser comme arrière-plan correspondant à cette chaîne d'élément image. Spécifiez `null` pour supprimer l'élément d'arrière-plan.
Exemple
-------

Cet exemple change l'arrière-plan d'un bloc `<div>` chaque fois que l'utilisateur clique sur le bloc.

Vue de cet exemple en direct.


```html
<style type="text/css">
 #mybox {
 background-image: -moz-element(#canvasbg);
 text-align: center;
 width: 400px;
 height: 400px;
 cursor: pointer;
 }
</style>
```


Le CSS défini par le bloc `<style>` ci-dessus est utilisé par notre `<div>` pour afficher un élément, ayant l'id "canvasbg", en arrière-plan.


```js
var c = 0x00;
function clicked() {
  var canvas = document.createElement("canvas");
  canvas.setAttribute("width", 100);
  canvas.setAttribute("height", 100);

  var ctx = canvas.getContext("2d");
  ctx.fillStyle = "#" + c.toString(16) + "0000";
  ctx.fillRect(25, 25, 75, 75);

  c += 0x11;
  if (c > 0xff) {
    c = 0x00;
  }

  document.mozSetImageElement("canvasbg", canvas);
}
```


Le code ici est appelé chaque fois que l'utilisateur clique sur l'élément `<div>`. Il crée un nouveau `<canvas>` avec la largeur et la hauteur définies à 100 pixels et le dessine dans un carré de 50 par 50 pixels. Chaque fois que la fonction est appelée, le carré est d'une couleur différente (sa composante rouge est augmentée à chaque fois), donc chaque fois que l'utilisateur clique sur l'élément, le fond est plus lumineux et rempli d'un motif plus lumineux de carreaux rouges.

Une fois le canvas dessiné, `document.mozSetImageElement()` est appelée pour définir l'arrière-plan de tout CSS en utilisant l'ID "canvasbg" comme ID d'élément d'arrière-plan pour être notre nouveau canvas.

Spécifications
--------------

Ne fait partie d'aucune spécification.

Voir aussi
----------

* `-moz-element()` (en-US)
Document.bgColor
================

**Obsolète:** Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

La propriété obsolète `bgColor` renvoie ou déinit la couleur de fond (background-color) du document courant.

Syntaxe
-------


```js
color = document.bgColor;
document.bgColor = color;
```

### Parametres

* `color` est une chaîne de caractères représentant la couleur comme un mot (e.g., "red") ou une valeur hexadécimale (e.g., "`#ff0000`").
Exemple
-------


```js
document.bgColor = "darkblue";
```

Notes
-----

La valeur par défaut pour cette propriété sur Firefox est le blanc (`#ffffff` en hexadécimal).

`document.bgColor` est obsolète dans le DOM Niveau 2 HTML. L'alternative recommandée est l'utilisation du style CSS `background-color` qui peut être accessible via le DOM avec `document.body.style.backgroundColor`. Une autre alternative est `document.body.bgColor`, mais c'est aussi obsolète dans HTML 4.01 en faveur de l'alternative CSS.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
document.createComment
======================

`createComment()` crée et retourne un nouveau noeud de type commentaire.

Syntaxe
-------


```js
CommentNode = document.createComment(data);
```

### Paramètres

`data`

Une chaîne de caractères représentant le contenu du commentaire.

Exemple
-------


```js
var docu = new DOMParser().parseFromString("<xml></xml>", "application/xml");
var comment = docu.createComment("Voici un commentaire pas très bien caché");

docu.getElementsByTagName("xml")[0].appendChild(comment);

alert(new XMLSerializer().serializeToString(docu));
// Affiche: <xml><!--Voici un commentaire pas très bien caché--></xml>
```

Spécification
-------------

* createComment
scroll
======

L'évènement **`scroll`** (défilement) est émis lorsque l'on fait défiler le document ou un élément.

Informations générales
----------------------

|  |  |
| --- | --- |
| Bouillonne | 
 Pas sur les éléments, mais bouillonne vers la defaultView si émis sur le
 document
  |
| Annulable | Non |
| Interface | `UIEvent` |
| Cible | 
 DefaultView, `Document`,
 `Element` |
| Action par défaut | Aucune |

**Note :** Sur iOS UIWebViews, les évènements `scroll` ne sont pas émis pendant le défilement, mais une fois que celui-ci est terminé. Voir Bootstrap issue #16202. Safari et WKWebViews ne sont pas affectés par ce bogue.

Propriétés
----------

| Propriété | Type | Description |
| --- | --- | --- |
| `target` Lecture seule  | `EventTarget` | La cible de l'évènement (la plus haute dans l'arbre DOM). |
| `type` Lecture seule  | `DOMString` | Le type d'évènement. |
| `bubbles` Lecture seule  | `Boolean` (en-US) | Si l'évènement bouillonne ou non. |
| `cancelable` Lecture seule  | `Boolean` (en-US) | Si l'évènement est annulable ou non. |
| `view` Lecture seule  | `WindowProxy` | `Document.defaultView` (objet `window` du document) |
| `detail` Lecture seule  | `long` (`float`) | 0. |

Exemple
-------

### Temporisation des évènements scroll

Comme les évènements `scroll` peuvent être émis à une fréquence élevée, le gestionnaire d'évènements ne devrait pas effectuer des opérations coûteuses en termes de puissance de calcul, telles que des modification du DOM. À la place, il est recommandé de temporiser l'évènement en utilisant `requestAnimationFrame()`, `setTimeout()` (en-US) ou un `CustomEvent`, comme suit.

Notez, cependant, que les évènements d'interface utilisateur et les frames d'animation sont émises à peu près à la même fréquence, et ainsi l'optimisation qui suit est souvent superflue. Cet exemple optimise l'évènement `scroll` avec `requestAnimationFrame`.


```js
// Référence: http://www.html5rocks.com/en/tutorials/speed/animations/

var derniere_position_de_scroll_connue = 0;
var ticking = false;

function faireQuelqueChose(position\_scroll) {
  // faire quelque chose avec la position du scroll
}

window.addEventListener("scroll", function (e) {
  derniere_position_de_scroll_connue = window.scrollY;

  if (!ticking) {
    window.requestAnimationFrame(function () {
      faireQuelqueChose(derniere_position_de_scroll_connue);
      ticking = false;
    });
  }

  ticking = true;
});
```

### Autres exemples

Pour plus d'exemples similaires, voir l'évènement resize (en-US).

Spécifications
--------------

| Specification |
| --- |
| CSSOM View Module # eventdef-document-scroll |
| HTML Standard # handler-onscroll |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `GlobalEventHandlers.onscroll`
Document()
==========

Le constructeur **`Document`** crée un nouvel objet de `Document`, qui est une référence de la page courante du navigateur et sert de point d'entrée vers les contenus de celle-ci.

Syntaxe
-------


```js
var document = new Document();
```

### Paramètres

None.

Spécifications
--------------

| Specification |
| --- |
| DOM Standard # ref-for-dom-document-document① |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Document.characterSet
=====================

**`Document.characterSet`** propriété en lecture seule, renvoie l'encodage du document en cours. Un encodage décrit l'ensemble des caractères possibles et la façon de décoder les octets en ces caractères.

**Note :** La propriété `document.charset` et `document.inputEncoding` sont les alias de `document.characterSet`. Ne plus les utiliser.

Les utilisateurs peuvent surcharger l'encodage indiqué pour le document (transmis par l'en-tête `Content-Type` ou via le `<meta>` : `<meta charset="utf-8">`) grâce au menu `Affichage → Encodage du texte`. Cela peut notamment permettre de corriger le comportement d'un document dont l'encodage indiqué est incorrect.

Syntaxe
-------


```js
var string = document.characterSet;
```

Exemples
--------


```html
<button onclick="console.log(document.characterSet);">
  Affiche le jeu de caractère
</button>
<!-- logs document's character set, such as "ISO-8859-1" or "UTF-8" -->
```

Spécifications
--------------

| Specification |
| --- |
| DOM Standard # ref-for-dom-document-characterset① |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Document.preferredStyleSheetSet
===============================

Retourne la feuille de style préférée, telle que définie par l'auteur de la page.

Syntaxe
-------


```js
preferredStyleSheetSet = document.preferredStyleSheetSet;
```


Au retour, `preferredStyleSheetSet` indique la feuille de style préférée par l'auteur. Ceci est déterminé par l'ordre des déclarations des feuilles de style et par l'entête HTTP intitulé `Default-Style`.

En l'absence de feuille de style préférée, une chaine vide ("") est retournée.

Exemple
-------


```js
if (document.preferredStyleSheetSet) {
  console.log(
    "La feuille de style préférée est : " + document.preferredStyleSheetSet,
  );
} else {
  console.log("Il n'y a pas de feuille de style préférée.");
}
```

Spécifications
--------------

* HTML5: Alternate Style Sheets
Voir aussi
----------

* `document.lastStyleSheetSet`
* `document.selectedStyleSheetSet`
* `document.styleSheetSets`
* `document.enableStyleSheetsForSet()`
Document.xmlVersion
===================

**Obsolète:** Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

Renvoie le numéro de version comme spécifié dans la déclaration XML (par exemple, `<?xml version="1.0"?>`) ou "1.0" si la déclaration est absente.

Cet attribut n'a jamais été réellement utile, parce qu'il a toujours renvoyé 1.0, et a été supprimé dans la spécification DOM Niveau 4. En conséquence, Firefox 10 ne l'implémente plus. Son utilisation principale dans le passé consistait à détecter si le document était rendu en XML plutôt qu'en HTML. Pour ce faire, vous pouvez créer un élément avec son nom en minuscule, puis vérifier s'il est converti en majuscules (auquel cas le document est en mode HTML non XML) :


```js
if (document.createElement("foo").tagName == "FOO") {
  /\* le document n'est pas XML \*/
}
```

Spécifications
--------------

| Specification |
| --- |
| DOM Standard # dom-document-xmlversion |
Document.currentScript
======================

Retourne l'élément `<script>` dont le script est en cours de traitement.

Syntaxe
-------


```js
var curScriptElement = document.currentScript;
```

Exemple
-------

Cet exemple vérifie si le script s'exécute de manière asynchrone :


```js
if (document.currentScript.async) {
  console.log("Exécution asynchrone");
} else {
  console.log("Exécution synchrone");
}
```


Voir l'exemple sur une page

Notes
-----

Il est important de noter que l'élément `<script>` ne sera pas référencé si le code dans le script est appelé par une fonction de rappel ou par un gestionnaire d'événements ; seul sera référencé l'élément alors qu'il est initialement en cours d'exécution.

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-document-currentscript-dev |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `<script>`
* `document.onafterscriptexecute`
* `document.onbeforescriptexecute`
document.getElementsByName()
============================

Renvoie une liste des éléments portant un `name` donné dans le document (X)HTML.

Syntaxe
-------


```js
elements = document.getElementsByName(name);
```


* `elements` est une collection de `NodeList`
* `name` est la valeur de l'attribut `name` des éléments.
Exemple
-------


```html
<!doctype html>
<html lang="en">
  <head>
    ...
  </head>

  <body>
    <form name="up"><input type="text" /></form>
    <div name="down"><input type="text" /></div>

    <script>
 var up\_forms = document.getElementsByName("up");
 console.log(up\_forms[0].tagName); // retourne "FORM"
 </script>
  </body>
</html>
```

Notes
-----

L'attribut `name` est uniquement applicable aux documents (X) HTML. La méthode renvoie une collection `NodeList` en cours qui contient tous les éléments avec une valeur donnée pour l'attribut name, tels que `<meta>` ou `<object>` ou même si le nom est placé sur des éléments qui ne supportent pas du tout un attribut `name`.

La méthode **getElementsByName** fonctionne différemment dans différents navigateurs. Dans IE <10, la méthode getElementsByName () renvoie également les éléments qui ont un attribut id avec la valeur spécifiée. Vous devriez donc faire attention à ne pas utiliser la même chaîne pour le nom et l'identifiant.

Spécifications
--------------

| Specification |
| --- |
| HTML Standard # dom-document-getelementsbyname-dev |

Voir aussi
----------

* `document.getElementById()` pour retourner une référence à un élément par son ID
* `document.getElementsByTagName()` pour renvoyer les références sur les éléments avec la balise de nom donnée
* `document.querySelector()` pour des sélecteurs par des requêtes comme `'div.myclass'`