Hi Fabian
These changes are in since a couple of minutes ago. Have no idea where I 
got the erroneous window.write() info from.

-i.


Fabian Guisset wrote:

> Hi Ian and everyone,
> 
> here is some more material to update the DOM reference.
> 
> Bug fixes and typos:
> ************************
> 1) http://mozilla.org/docs/dom/domref/dom_frame_ref2.html#998120
> * "Its interface-the two optional properties cols and rows-are a way to
> indicate the dimenions of the frame set, how many subframes it manages."
> "dimenions" should be "dimensions"
> 
> * In the example, I suggest adding a id="frame1" attribute to the first
> frame of the HTML snippet, so that the javascript snippet matches the
> HTML code. If you that's done nowhere else (matching the js to the
> html), then nevermind.
> 
> * In the same example, the comment should be changed:
> "// do something with each frame as frame[i]"
> "frame[i]" should read "frames[i]"
> 
> 2) http://mozilla.org/docs/dom/domref/dom_doc_ref.html#1022427 (Document)
> * "IT is contained by the window object (see DOM window Reference) and may
> contain any number of elements (see DOM Element Reference.)"
> "IT" should read "It"
> 
> * We should add a note somewhere that the properties and methods 
> described in that page are only available to xhtml and html documents 
> (as defined by the DOM Level 2 HTML spec). XML documents have a 
> different document object (XMLDocument), and XUL documents have yet 
> another different document object(XULDocument). Each has different 
> properties, though the common properties (Document) are described in the 
> DOM Level 2 Core spec.
> 
> 3) http://mozilla.org/docs/dom/domref/dom_doc_ref5.html#1003433
> Parameters: "appletes" should read "applets"
> 
> 
> New properties and methods:
> *****************************
> 1) http://mozilla.org/docs/dom/domref/dom_frame_ref5.html#998130 (FRAME)
> A missing property, and a new one:
> * name: The frame name (object of the target attribute).
> 
> * contentWindow: returns the window object for this frame [readonly][non
> standard]
> Detailed description:
>    Syntax: frameWindow = frameElement.contentWindow
>    Parameters: frameWindow is the window object for this frame
>    Example: f = document.getElementById("frame");
>             f.contentWindow.location = "http://mozilla.org";;
>             f.contentWindow.history.back();
>    Notes: The same functionality can be achieved by giving the frame a
>           name (e.g. myFrame) then using window.frames["myFrame"].
>    Specification: None.
> 
> 2) The same thing as 1) applies to
> http://mozilla.org/docs/dom/domref/dom_frame_ref14.html#998139 (IFRAME)
> 
> 3) http://mozilla.org/docs/dom/domref/dom_doc_ref.html#1022427 
> (HTMLDocument)
> Missing or incomplete properties:
> * title: The title of this document.
> Detailed description:
>    Syntax: docTitle = document.title
>    Parameters: docTitle is a string containing the title of the document
>    Example: document.title = "A new title for this document"
>    Notes: Same as window.title, though window.title will probably be
>           deprecated some day.
>    Specification: DOM Level 1 HTML 
> (http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-html.html#ID-18446827) 
> 
> 
> * domain: Even though the W3C spec says it's readonly, in Mozilla it is 
> settable. This should reflected in the syntax of the property.
> 
> * URL: Example missing:
>   var currentURL = document.URL;
>   alert(currentURL);
>   The Note is wrong:
>   "URL is a somewhat more appropriately named replacement for the DOM 
> Level 0 document.location property also described here. Like 
> document.location, document.URL is not settable because a document can 
> have only one URL."
>   should read
>   "URL is a replacement for the DOM Level 0 document.location.href 
> property. However document.URL is not settable, unlike 
> document.location.href."
> because document.location is just a hack that maps to 
> document.location.href, and it is not readonly, it's definitely settable 
> in all browsers.
> 
> * body: returns the BODY element, or the FRAMESET element in a frameset.
> Detailed description:
>   The element that contains the content for the document. In documents
>   with BODY contents, returns the BODY element, and in frameset
>   documents, this returns the outermost FRAMESET element
>   Syntax: bodyElement = document.body
>           document.body = aNewBodyElement
>   Parameters:
>     bodyElement is the BODY or FRAMESET element of the current document
>     aNewBodyElement is a BODY or FRAMESET element that will replace the
>     current BODY or FRAMESET element.
>   Example: HTML:
>     <body id="oldBodyElement"></body>
>   JavaScript:
>     alert(document.body.id); // "oldBodyElement"
>     var aNewBodyElement = document.createElement("body");
>     aNewBodyElement.id = "newBodyElement";
>     document.body = aNewBodyElement;
>     alert(document.body.id); // "newBodyElement"
>   Notes: Setting a new body element will effectively remove all the 
> current children of your old body element, since it does a simple 
> replaceChild().
> 
> * links:
>   Example:
>   var links = document.links;
>   for(var i = 0; i < links.length; i++) {
>     var linkHref = document.createTextNode(links[i].href);
>     var lineBreak = document.createElement("br");
>     document.body.appendChild(linkHref);
>     document.body.appendChild(lineBreak);
>   }
> 
> * anchors:
>   Notes: For reasons of backwards compatibility, the returned set of
>   anchors only contains those anchors created with the name attribute,
>   not those created with the id attribute.
>   Personal note: I love your example for this one ;-)
> 
> * open():
>   Notes: an automatic document.open() is executed if document.write() is
>   called after the page has loaded
> 
> * write() and writeln():
>   The Notes are erroneous. They should read:
>   Writing to a document that has already loaded without calling
>   document.open() will automatically perform a document.open() call.
>   Once you have finished writing, it is recommended to call
>   document.close(), to tell the browser to finish loading the page.
>   The text you write is parsed into the document's structure model. In
>   the example above, the H1 element becomes a node in the document.
>   If the document.write() call is embedded directly in the HTML code,
>   then it will not call document.open(). For example:
>   <div><script type="text/javascript">document.write("<h1>Main 
> title</h1>")</script></div>
> 
>   Personal Note: Ian, where did you read the comments that are currently 
> displayed as "Notes" for document.write() and document.writeln()? It's 
> like, exactly the opposite of what it really does, unless I am badly 
> mistaken and need a serious beating.
> 
> * getElementsByTagName():
>   The example should read "tables.length" instead of "length(tables)".
>   Also the for loop should read "tables.length" instead of
>   "frames.length".
>   Finally, the dump statement should read "dump(tables[i].align)"
>   instead of "dump(table[i].alignment)".
> 
> New property to the HTMLDocument object:
> * compatMode:
>   Whether the document is rendered in quirks mode or strict mode.
>   Detailed description:
>   Syntax: renderMode = document.compatMode
>   Parameters: renderMode is a string containing "BackCompat" if the
>   document is rendered in Quirks mode, or "CSS1Compat" if the document
>   is rendered in Strict mode.
>   Notes: None.
>   Specification: None.
> 
> 
> That's it for the moment, I'll come up with more later on.
> Thanks in advance and keep up the excellent work!!
> 
> -Fabian.
> 


Reply via email to