Toute page web chargée dans un navigateur web a son propre objet document
. Cet objet sert de point d'entrée au contenu de la page et apporte des fonctions générales au document.
L'interface de l'objet document
permet d'accéder à de nombreuses choses comme le type de document, son URL, l'arbre DOM (incluant des éléments tels que <body>
ou encore <table>
), tout en fournissant des méthodes pour créer et manipuler chacun des sous-nœuds du document.
L'objet document
, peut être obtenu depuis différentes APIs :
- Principalement, pour travailler avec le document sur lequel s'éxecute le script, en utilisant l'objet
document
(il se trouve en fait danswindow.document
). - Le document d'une iframe, par la propriété de l'iframe
contentDocument
. - Par
responseXML
d'un objetXMLHttpRequest
. - Le document auquel appartient un nœud ou un élément peut être récupéré par la propriété
ownerDocument
du nœud. - Et plus encore...
Dans le DOM, l'objet document fournit une manière générale de représenter les documents HTML, XHTML et XML. Les objets document
implémentent l'interface DOM Core Document.
En plus cette interface généralisée de document, les documents HTML implémentent l'interface DOM HTMLDocument, qui est une interface spécialisée pour le traitement des documents HTML (par exemple avec document.cookie
ou document.alinkColor
).
Les méthodes et les propriétés listées ici qui font parties d'une interface spécialisées sont présentées avec une astérisque (*) à côté de leur nom et ont des informations additionnelles dans la colonne Disponibilité.
Notez que certaines APIs listées ci-dessous ne sont pas disponibles dans tous les navigateurs web, pour différentes raisons :
- Obsolète : en cours de suppression dans les navigateurs web supportant cette méthode/propriété
- Non-standard : il s'agit soit d'une fonctionnalité expérimentale pas (encore?) acceptée par tous les fabricants, ou une fonctionnalité spécifique au code du navigateur (par exemple Mozilla a quelques APIs DOM créés pour la création d'add-ons et le développement d'applications).
- Ou il s'agit d'un standard emergeant ou terminé mais qui n'a pas (encore?) été implémenté par les navigateurs web.
Le support détaillé par navigateur web est détaillé sur chaque page de propriété ou méthode.
Propriétés
document.activeElement
- Renvoie l'élément courant qui a la focus.
document.alinkColor
*- Renvoie ou définit la couleur des liens actifs du document.
document.anchors
*- Renvoie une liste de toutes les ancres du document.
document.applets
*- Renvoie une liste ordonnée des applets du document.
document.async
- Utilisé avec
document.load
pour indiquer une requête asynchrone. document.baseURIObject
- Renvoie un objet
nsIURI
représentant l'URI de base pour le document. document.bgColor
*- bgColor renvoie ou définit la couleur d'arrière plan du document courant.
document.body
*- body renvoie le nœud BODY du document.
document.characterSet
- Renvoie le jeu de caractères utilisé par le document.
document.compatMode
*- Indique si le document est rendu en mode Quirks ou Strict.
document.contentType
- Renvoie l'en-tête MIME Content-Type du document courant.
document.cookie
*- Renvoie une liste des cookies du document, séparés par des points virgules, ou définit un cookie.
document.currentScript
*- Renvoie l'élement
<script>
s'executant actuellement. document.defaultView
- Renvoie une référence à l'objet window.
document.designMode
*- designMode renvoie ou définit les capacités d'édition WYSYWIG de Midas.
document.dir
- Assigne / renvoie le sens du texte (rtl/ltr) du document
document.doctype
- Renvoie le DTD (Document Type Definition) du document courant.
document.documentElement
- Renvoie l'élément qui est l'enfant direct du document. Pour les documents HTML, il s'agit normalement de l'élément HTML.
document.documentURIObject
- Renvoie l'objet
nsIURI
qui représente l'URI du document. Cette propriété n'a une signification spéciale que dans du code JavaScript privilégié (avec les privilèges UniversalXPConnect). document.domain
*- domain renvoie le domaine de l'élément courant.
document.embeds
*- embeds renvoie une liste des objets (éléments OBJECT) inclus dans le document courant.
document.fgColor
*- fgColor renvoie ou définit la couleur du texte du document.
document.firstChild
- firstChild renvoie le premier nœud de la liste des enfants directs du document. (Voir aussi
firstChild
dans les propriétés générales des éléments.) document.forms
*- forms renvoie une liste des éléments FORM du document courant
document.head
*- Renvoie l'élément head du document
document.height
*- height renvoie ou définit la hauteur du document courant.
document.images
*- images renvoie une liste des images du document.
document.implementation
*- Renvoie l'implémentation DOM associée au document courant.
document.lastModified
*- Renvoie la date de dernière modification du document
document.linkColor
*- Renvoie ou définit la couleur des liens du document.
document.links
*- Renvoie un tableau de tous les liens du document.
document.location
*- Renvoie l'URI (Uniform Ressource Identifier : identifiant uniforme de ressource) du document courant.
document.namespaceURI
- Renvoie l'espace de nommage XML du document courant.
document.nodePrincipal
- Renvoie l'objet
nsIPrincipal
qui représente le contexte de sécurité courant du document. document.plugins
*- Renvoie une liste des plugins disponibles.
document.popupNode
- Renvoie le nœud sur lequel un
popup
a été invoqué (documents XUL uniquement). document.referrer
*- Renvoie l'URI de la page qui a amené à cette page.
document.styleSheets
*- Renvoie une liste de tous les objets
stylesheet
(feuilles de styles) du document courant. document.title
*- Renvoie le titre du document courant.
document.tooltipNode
- Renvoie le nœud cible de l'élément
tooltip
courant. document.URL
- Renvoie une chaîne contenant l'URL (Uniform Resource Locator, repère uniforme de ressource) du document courant.
document.vlinkColor
*- Renvoie ou définit la couleur des liens visités du document.
document.width
*- Renvoie la largeur du document courant.
Méthodes
document.clear
*- Dans la plupart des navigateurs modernes, y compris les versions récentes de Firefox et Internet Explorer, cette méthode ne fait rien.
document.close
*- Ferme le flux utilisé pour l'écriture du document.
document.createAttribute
- Crée un nouveau nœud attribut et le renvoie.
document.createCDATASection
- Crée un nouveau nœud CDATA et le renvoie.
document.createComment
- Crée un nouveau nœud de commentaire et le renvoie.
document.createDocumentFragment
- Crée un nouveau fragment de document.
document.createElement
- Crée un nouvel élément du type spécifié.
document.createElementNS
- Crée un nouvel élément du type et avec l'URI d'espace de noms spécifiés.
document.createEntityReference
- Crée un nouvel objet de référence à une entité et le renvoie.
document.createEvent
- Crée un nouvel évènement.
document.createNSResolver
- Crée un XPathNSResolver.
document.createProcessingInstruction
- Crée un nouvel élément d'instruction de traitement et le renvoie.
document.createRange
- Crée un objet Range.
document.createTextNode
- Crée un nœud de texte.
document.createTreeWalker
- Crée un objet TreeWalker.
document.elementFromPoint
- Renvoie l'élément visible aux coordonnées spécifiées.
document.evaluate
- Évalue une expression XPath.
- document.execCommand*
- Exécute une commande Midas.
document.getElementById
- Renvoie une référence à l'objet correspondant à l'identifiant donné.
document.getElementsByClassName
- Renvoie une liste des éléments ayant le nom de classe donné.
document.getElementsByName
- Renvoie une liste des éléments ayant le nom donné.
document.getElementsByTagName
- Renvoie une liste des éléments ayant le nom de balise donné.
document.getElementsByTagNameNS
- Renvoie une liste des éléments du nom de balise et de l'espace de noms spécifiés.
document.importNode
- Renvoie une copie (un clone) d'un élément provenant d'un document externe.
document.load
- Charge un document XML
document.loadOverlay
- Charge un overlay XUL dynamiquement. Fonctionne uniquement dans les documents XUL.
document.open
*- Ouvre un flux pour l'écriture dans le document.
document.queryCommandEnabled
*- Renvoie
true
si la commande Midas peut être exécutée sur l'objet Range courant. document.queryCommandIndeterm
*- Renvoie
true
si la commande Midas est dans un état indéterminé sur l'objet Range courant. document.queryCommandState
*- Renvoie
true
si la commande Midas a été exécutée sur l'objet Range courant. document.queryCommandValue
*- Renvoie la valeur courante de la commande Midas sur l'objet Range courant. À partir de Firefox 2.0.0.2,
queryCommandValue
renverra une chaîne vide lorsqu'aucune valeur de commande n'a encore été définie explicitement. document.write
*- Écrit du texte dans le document.
document.writeln
*- Écrit une ligne de texte dans le document.
Gestionnaires d'évènements
Firefox 3 ajoute deux nouveaux évènements : « online » et « offline ». Ces deux évènements sont déclenchés sur l'élément body
de chaque page lorsque le navigateur passe en mode hors ligne ou en ligne. De plus, ces évènements se propagent depuis document.body
vers document
pour se terminer à window
. Ils ne sont pas annulables (il n'est pas possible d'empêcher l'utilisateur de se connecter ou se déconnecter). Pour plus d'informations, consultez Évènements online et offline.
document.ononline
- Renvoie le code de gestion de l'évènement online.
document.onoffline
- Renvoie le code de gestion de l'évènement offline.
Notes concernant la sécurité
Cette section couvre les améliorations de la sécurité faites dans Firefox 3/Gecko 1.9.
Lorsqu'un nouveau document est créé, il est initialement chargé avec « about:blank ». Dans les versions antérieures à Firefox 3, l'accès au contenu des documents « about:blank » n'était pas limité. Bien que cela ne semble pas être un problème significatif, cela pouvait le devenir si du code commençait à ajouter du contenu à ce document vide à l'aide de méthodes et propriétés DOM comme appendChild()
, car ce contenu ne serait pas protégé d'un accès non autorisé.
Gecko a été mis à jour dans Firefox 3 afin que les nouveaux documents héritent de leur parent. La sécurité est ainsi améliorée tant pour les iframe
s et documents en cours de chargement que pour les documents construits programmatiquement.