Document
========

Para cada página carregada no browser, existe um objeto **`Document`**. A interface `Document` serve como um ponto de entrada para o conteúdo da Página ( a árvore DOM, incluindo elementos como `<body>` e `<table>`) e provê funcionalidades globais ao documento (como obter a URL da página e criar novos elementos no documento).

EventTarget

Node

Document
Um objeto document pode ser obtido por meio de várias APIs:

* A mais comum; você trabalha com o script do documento que está rodando o script com o objeto document. (O mesmo document também pode ser referenciado como `window.document`.)
* O documento de um iframe através da propriedade `contentDocument.`
* O `responseXML` de um objeto `XMLHttpRequest`.
* O documento ao qual um determinado node ou elemento pertence pode ser recuperado usando a propriedade do node `ownerDocument` (en-US)

Dependendo do tipo do documento (e.g. HTML ou XML (en-US)), diferentes APIs estarão disponívels no objeto **`Document`**.

Todo objeto **`Document`** implementa a interface `Document` (e consequentemente as interfaces `Node` e `EventTarget`). Portanto, as principais propriedades e métodos documentados nesta página estarão disponíveis para todos os tipos de documents.

* Em navegadores mais atuais, alguns documentos (ex: aqueles que são servidos com o Content-Type `text/html`) também implementam a interface `HTMLDocument` (en-US).
* Em navegadores mais atuais, documentos SVG implementam a interface `SVGDocument`.

No futuro, todas essas interfaces irão ser divididas na interface `Document`.

Propriedades
------------

**Nota:** A interface `Document` também herda das interfaces `Node` e `EventTarget`.

`Document.all` (en-US) 
Deprecated

Non-standard

Da acesso a todos os elementos do documento.È uma interface legada não padrão, voce deve usar o método `Document.getElementById()` como alternativa.

`Document.async` 
Deprecated

Usado como `document.load` que indica uma requisição asyncroma.

`Document.characterSet` 
Experimental

Retorna a codificação de caracteres que está sendo usado pelo documento.

`Document.compatMode` 
Experimental

indica se o documento é renderizado no modo Quirks ou Strict.

`Document.contentType` 
Experimental

Retorna o tipo de conteúdo do cabeçalho MIME do documento atual.

`Document.doctype`

Retorna o nome do tipo de conteudo do documento HTML.

`Document.documentElement`

Returns the Element that is a direct child of the document. For HTML documents, this is normally the HTML element.

`Document.documentURI`

Returns the document URL.

`Document.domConfig` (en-US) 
Deprecated

Should return a `DOMConfiguration` object.

`Document.implementation`

Returns the DOM implementation associated with the current document.

`Document.inputEncoding` (en-US) 
Deprecated

Returns the encoding used when the document was parsed.

`Document.lastStyleSheetSet` (en-US)

Returns the name of the style sheet set that was last enabled. Has the value `null` until the style sheet is changed by setting the value of `selectedStyleSheetSet` (en-US).

`Document.mozSyntheticDocument` (en-US) 
Non-standard

`true` if this document is synthetic, such as a standalone image, video, audio file, or the like.

`Document.mozFullScreen` (en-US) 
Non-standard

`true` when the document is in `full-screen mode`.

`Document.mozFullScreenElement` (en-US) 
Non-standard

The element that's currently in full screen mode for this document.

`Document.mozFullScreenEnabled` (en-US) 
Non-standard

`true` if calling `element.mozRequestFullscreen()` (en-US) would succeed in the curent document.

`Document.pointerLockElement` (en-US) 
Experimental

Returns the element set as the target for mouse events while the pointer is locked. `null` if lock is pending, pointer is unlocked, or if the target is in another document.

`Document.preferredStyleSheetSet` (en-US)

Returns the preferred style sheet set as specified by the page author.

`Document.selectedStyleSheetSet` (en-US)

Returns which style sheet set is currently in use.

`Document.styleSheets` (en-US)

Returns a list of the style sheet objects on the current document.

`Document.styleSheetSets` (en-US)

Returns a list of the style sheet sets available on the document.

`Document.xmlEncoding` (en-US) 
Deprecated

Returns the encoding as determined by the XML declaration.

`Document.xmlStandalone`

Returns `true` if the XML declaration specifies the document to be standalone (*e.g.,* An external part of the DTD affects the document's content), else `false`.

`Document.xmlVersion` (en-US)

Returns the version number as specified in the XML declaration or `"1.0"` if the declaration is absent.

The `Document` interface is extended with the `ParentNode` interface:

{{page("/pt-BR/docs/Web/API/ParentNode","Properties")}}### Extension for HTML documents

The `Document` interface for HTML documents inherit from the `HTMLDocument` (en-US) interface or, since HTML5, is extended for such documents:

`Document.activeElement`

Returns the currently focused element.

`Document.alinkColor` 
Deprecated

Returns or sets the color of active links in the document body.

`Document.anchors`

Returns a list of all of the anchors in the document.

`Document.applets` (en-US) 
Deprecated

Returns an ordered list of the applets within a document.

`Document.bgColor` 
Deprecated

Gets/sets the background color of the current document.

`Document.body`

Returns the `<body>` element of the current document.

`Document.cookie` (en-US)

Returns a semicolon-separated list of the cookies for that document or sets a single cookie.

`Document.defaultView`

Returns a reference to the window object.

`Document.designMode`

Gets/sets the ability to edit the whole document.

`Document.dir` (en-US)

Gets/sets directionality (rtl/ltr) of the document.

`Document.domain` (en-US)

Returns the domain of the current document.

`Document.embeds` (en-US)

Returns a list of the embedded `<embed>` elements within the current document.

`Document.fgColor` (en-US) 
Deprecated

Gets/sets the foreground color, or text color, of the current document.

`Document.forms` (en-US)

Returns a list of the `<form>` (en-US) elements within the current document.

`Document.head`

Returns the `<head>` element of the current document.

`Document.height` 
Non-standard

Gets/sets the height of the current document.

`Document.images`

Returns a list of the images in the current document.

`Document.lastModified` (en-US)

Returns the date on which the document was last modified.

`Document.linkColor` (en-US) 
Deprecated

Gets/sets the color of hyperlinks in the document.

`Document.links` (en-US)

Returns a list of all the hyperlinks in the document.

`Document.location`

Returns the URI of the current document.

`Document.plugins` (en-US)

Returns a list of the available plugins.

`Document.readyState`

Returns loading status of the document.

`Document.referrer`

Returns the URI of the page that linked to this page.

`Document.scripts`

Returns all the `<script>` elements on the document.

`Document.title` (en-US)

Returns the title of the current document.

`Document.URL`

Returns a string containing the URL of the current document.

`Document.vlinkColor` (en-US) 
Deprecated

Gets/sets the color of visited hyperlinks.

`Document.width` (en-US) 
Non-standard

Returns the width of the current document.

### Event handlers

`Document.onpointerlockchange` 
Experimental

Returns the event handling code for the `pointerlockchange (en-US)` event.

`Document.onpointerlockerror` 
Experimental

Returns the event handling code for the `pointerlockerror (en-US)` event.

`Document.onreadystatechange`

Returns the event handling code for the `readystatechange` event.

Methods
-------

**Nota:** The `Document` interface also inherits from the `Node` and `EventTarget` interfaces.

`Document.adoptNode(Node node)` (en-US)

Adopt node from an external document.

`Document.captureEvents(String eventName)` 
Deprecated

See `window.captureEvents` (en-US).

`Document.caretPositionFromPoint(Number x, Number y)` (en-US)

Gets a `CaretPosition` (en-US) based on two coordinates.

`Document.createAttribute(String name)` (en-US)

Creates a new `Attr` object and returns it.

`Document.createAttributeNS(String namespace, String name)` (en-US)

Creates a new attribute node in a given namespace and returns it.

`Document.createCDATASection(String data)` (en-US)

Creates a new CDATA node and returns it.

`Document.createComment(String comment)` (en-US)

Creates a new comment node and returns it.

`Document.createDocumentFragment()` (en-US)

Creates a new document fragment.

`Document.createElement(String name)`

Creates a new element with the given tag name.

`Document.createElementNS(String namespace, String name)`

Creates a new element with the given tag name and namespace URI.

`Document.createEntityReference(String name)` (en-US)

Creates a new entity reference object and returns it.

`Document.createEvent(String interface)` (en-US)

Creates an event object.

`Document.createNodeIterator(Node root[, Number whatToShow[, NodeFilter filter]])`

Creates a `NodeIterator` (en-US) object.

`Document.createProcessingInstruction(String target, String data)` (en-US)

Creates a new `ProcessingInstruction` object.

`Document.createRange()` (en-US)

Creates a `Range` (en-US) object.

`Document.createTextNode(String text)` (en-US)

Creates a text node.

`Document.createTreeWalker(Node root[, Number whatToShow[, NodeFilter filter]])` (en-US)

Creates a `TreeWalker` (en-US) object.

`Document.elementFromPoint(Number x, Number y)`

Returns the element visible at the specified coordinates.

`Document.enableStyleSheetsForSet(String name)` (en-US)

Enables the style sheets for the specified style sheet set.

`Document.exitPointerLock()` (en-US) 
Experimental

Release the pointer lock.

`Document.getElementsByClassName(String className)`

Returns a list of elements with the given class name.

`Document.getElementsByTagName(String tagName)` (en-US)

Returns a list of elements with the given tag name.

`Document.getElementsByTagNameNS(String namespace, String tagName)` (en-US)

Returns a list of elements with the given tag name and namespace.

`Document.importNode(Node node, Boolean deep)`

Returns a clone of a node from an external document.

`document.mozSetImageElement` (en-US) 
Non-standard

Allows you to change the element being used as the background image for a specified element ID.

`Document.normalizeDocument()`

Replaces entities, normalizes text nodes, etc.

`Document.releaseCapture()` (en-US) 
Non-standard

Releases the current mouse capture if it's on an element in this document.

`Document.releaseEvents` 
Non-standard

Deprecated

See `window.releaseEvents` (en-US).

`document.routeEvent` 
Non-standard

See `window.routeEvent`.

The `Document` interface is extended with the `ParentNode` interface:

`Document.getElementById(String id)`

Returns an object reference to the identified element.

`Document.querySelector(String selector)`

Returns the first Element node within the document, in document order, that matches the specified selectors.

`Document.querySelectorAll(String selector)`

Returns a list of all the Element nodes within the document that match the specified selectors.

The `Document` interface is extended with the `XPathEvaluator` (en-US) interface:

`Document.createExpression(String expression, XPathNSResolver resolver)` (en-US)

Compiles an `XPathExpression` (en-US) which can then be used for (repeated) evaluations.

`Document.createNSResolver(Node resolver)` (en-US)

Creates an `XPathNSResolver` (en-US) object.

`Document.evaluate(String expression, Node contextNode, XPathNSResolver resolver, Number type, Object result)` (en-US)

Evaluates an XPath expression.

### Extension for HTML documents

The `Document` interface for HTML documents inherit from the `HTMLDocument` (en-US) interface or, since HTML5, is extended for such documents:

`Document.clear()` (en-US) 
Non-standard

Deprecated

In majority of modern browsers, including recent versions of Firefox and Internet Explorer, this method does nothing.

`Document.close()`

Closes a document stream for writing.

`Document.execCommand(String command[, Boolean showUI[, String value]])`

On an editable document, executes a formating command.

`Document.getElementsByName(String name)`

Returns a list of elements with the given name.

`Document.getSelection()`

Returns a `Selection` object related to text selected in the document.

`Document.hasFocus()`

Returns `true` if the focus is currently located anywhere inside the specified document.

`Document.open()` (en-US)

Opens a document stream for writing.

`Document.queryCommandEnabled(String command)` (en-US)

Returns true if the formating command can be executed on the current range.

`Document.queryCommandIndeterm(String command)`

Returns true if the formating command is in an indeterminate state on the current range.

`Document.queryCommandState(String command)` (en-US)

Returns true if the formating command has been executed on the current range.

`Document.queryCommandSupported(String command)` (en-US)

Returns true if the formating command is supported on the current range.

`Document.queryCommandValue(String command)`

Returns the current value of the current range for a formatting command.

`Document.registerElement(String tagname[, Object options])`

Registers a new custom element in the browser and returns a constructor for the new element.

`Document.write(String text)`

Writes text in a document.

`Document.writeln(String text)`

Writes a line of text in a document.

Specifications
--------------

| Specification |
| --- |
| DOM Standard # interface-document |
| HTML Standard # the-document-object |
| CSSOM View Module # extensions-to-the-document-interface |
| Pointer Lock 2.0 # extensions-to-the-document-interface |
| Selection API # extensions-to-document-interface |

Compatibilidade com navegadores
-------------------------------

### Firefox notes

Mozilla defines a set of non-standard properties made only for XUL content:

`document.currentScript`

Returns the `<script>` element that is currently executing.

`document.documentURIObject`

(**Mozilla add-ons only!**) Returns the `nsIURI` object representing the URI of the document. This property only has special meaning in privileged JavaScript code (with UniversalXPConnect privileges).

`document.popupNode`

Returns the node upon which a popup was invoked.

`document.tooltipNode`

Returns the node which is the target of the current tooltip.

Mozilla also define some non-standard methods:

`Document.execCommandShowHelp`

This method never did anything and always threw an exception, so it was removed in Gecko 14.0.

`Document.getBoxObjectFor` (en-US)

Use the `Element.getBoundingClientRect()` method instead.

`Document.loadOverlay`

Loads a XUL overlay dynamically. This only works in XUL documents.

`document.queryCommandText`

This method never did anything but throw an exception, and was removed in Gecko 14.0.

### Internet Explorer notes

Microsoft defines some non-standard properties:

`document.fileSize`\* 
Non-standard

Returns size in bytes of the document. Starting with Internet Explorer 11, that property is no longer supported. See MSDN.Internet Explorer does not support all methods from the `Node` interface in the `Document` interface

`document.contains`

As a work-around, `document.body.contains()` can be used.