APIs for dynamically inserting markup into the document interact with the parser, and thus their behavior varies depending on whether they are used with HTML documents (and the HTML parser) or XHTML in XML documents (and the XML parser).
The open()
method comes in
several variants with different numbers of arguments.
open
( [ type [,
replace ] ] )Causes the Document
to be replaced in-place, as if it
was a new Document
object, but reusing the previous
object, which is then returned.
If the type argument is omitted or has the
value "text/html
", then the resulting
Document
has an HTML parser associated
with it, which can be given data to parse using document.write()
.
Otherwise, all content passed to document.write()
will be parsed as plain text.
If the replace argument is present and has
the value "replace
", the existing entries in
the session history for the Document
object are removed.
The method has no effect if the Document
is still being parsed.
Throws an InvalidStateError
exception if the Document
is an XML document.
open
( url, name, features [, replace ] )Works like the window.open()
method.
close
()Closes the input stream that was opened by the document.open()
method.
Throws an InvalidStateError
exception if the Document
is an XML document.
document.write()
write
(text...)In general, adds the given string(s) to the Document
's input stream.
This method has very idiosyncratic behavior. In
some cases, this method can affect the state of the HTML
parser while the parser is running, resulting in a DOM that
does not correspond to the source of the document (e.g. if the
string written is the string "<plaintext>
" or "<!--
").
In other cases, the call can clear the current page first, as if
document.open()
had been called.
In yet more cases, the method is simply ignored, or throws an
exception. To make matters worse, the exact behavior of this method
can in some cases be dependent on network latency, which can lead to failures that are very hard to debug.
For all these reasons, use of this method is strongly
discouraged.
This method throws an InvalidStateError
exception when invoked on XML
documents.
document.writeln()
writeln
(text...)Adds the given string(s) to the Document
's input stream, followed by a
newline character. If necessary, calls the open()
method implicitly first.
This method throws an InvalidStateError
exception when invoked on XML
documents.