/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsIDOMNode.idl" %{ C++ #include "jspubtd.h" %} interface nsIDOMNodeIterator; interface nsIDOMNodeFilter; interface nsIDOMTreeWalker; interface nsIDOMLocation; /** * The nsIDOMDocument interface represents the entire HTML or XML document. * Conceptually, it is the root of the document tree, and provides the * primary access to the document's data. * Since elements, text nodes, comments, processing instructions, etc. * cannot exist outside the context of a Document, the nsIDOMDocument * interface also contains the factory methods needed to create these * objects. * * For more information on this interface please see * http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html */ [scriptable, uuid(FDB92F4F-C6B4-4509-A29D-A309981E28AC)] interface nsIDOMDocument : nsIDOMNode { readonly attribute nsIDOMDocumentType doctype; readonly attribute nsIDOMDOMImplementation implementation; readonly attribute nsIDOMElement documentElement; nsIDOMElement createElement(in DOMString tagName) raises(DOMException); nsIDOMDocumentFragment createDocumentFragment(); nsIDOMText createTextNode(in DOMString data); nsIDOMComment createComment(in DOMString data); nsIDOMCDATASection createCDATASection(in DOMString data) raises(DOMException); nsIDOMProcessingInstruction createProcessingInstruction(in DOMString target, in DOMString data) raises(DOMException); nsIDOMAttr createAttribute(in DOMString name) raises(DOMException); nsIDOMNodeList getElementsByTagName(in DOMString tagname); // Introduced in DOM Level 2: [optional_argc] nsIDOMNode importNode(in nsIDOMNode importedNode, [optional] in boolean deep) raises(DOMException); // Introduced in DOM Level 2: nsIDOMElement createElementNS(in DOMString namespaceURI, in DOMString qualifiedName) raises(DOMException); // Introduced in DOM Level 2: nsIDOMAttr createAttributeNS(in DOMString namespaceURI, in DOMString qualifiedName) raises(DOMException); // Introduced in DOM Level 2: nsIDOMNodeList getElementsByTagNameNS(in DOMString namespaceURI, in DOMString localName); // Introduced in DOM Level 2: nsIDOMElement getElementById(in DOMString elementId); // Introduced in DOM Level 3: readonly attribute DOMString inputEncoding; // Introduced in DOM Level 3: readonly attribute DOMString documentURI; // Introduced in DOM Level 3: nsIDOMNode adoptNode(in nsIDOMNode source) raises(DOMException); /** * Create a range * * @see http://html5.org/specs/dom-range.html#dom-document-createrange */ nsIDOMRange createRange(); [optional_argc] nsIDOMNodeIterator createNodeIterator(in nsIDOMNode root, [optional] in unsigned long whatToShow, [optional] in nsIDOMNodeFilter filter) raises(DOMException); [optional_argc] nsIDOMTreeWalker createTreeWalker(in nsIDOMNode root, [optional] in unsigned long whatToShow, [optional] in nsIDOMNodeFilter filter) raises(DOMException); nsIDOMEvent createEvent(in DOMString eventType) raises(DOMException); // HTML /** * The window associated with this document. * * @see */ readonly attribute nsIDOMWindow defaultView; /** * @see */ readonly attribute DOMString characterSet; /** * @see */ attribute DOMString dir; /** * @see */ readonly attribute nsIDOMLocation location; /** * @see */ attribute DOMString title; /** * @see */ readonly attribute DOMString readyState; /** * @see */ readonly attribute DOMString lastModified; /** * @see */ readonly attribute DOMString referrer; /** * @see */ boolean hasFocus(); /** * @see */ readonly attribute nsIDOMElement activeElement; /** * Retrieve elements matching all classes listed in a * space-separated string. * * @see */ nsIDOMNodeList getElementsByClassName(in DOMString classes); // CSSOM /** * @see */ readonly attribute nsIDOMStyleSheetList styleSheets; /** * This attribute must return the preferred style sheet set as set by the * author. It is determined from the order of style sheet declarations and * the Default-Style HTTP headers, as eventually defined elsewhere in the Web * Apps 1.0 specification. If there is no preferred style sheet set, this * attribute must return the empty string. The case of this attribute must * exactly match the case given by the author where the preferred style sheet * is specified or implied. This attribute must never return null. * * @see */ readonly attribute DOMString preferredStyleSheetSet; /** * This attribute indicates which style sheet set is in use. This attribute * is live; changing the disabled attribute on style sheets directly will * change the value of this attribute. * * If all the sheets that are enabled and have a title have the same title * (by case-sensitive comparisons) then the value of this attribute must be * exactly equal to the title of the first enabled style sheet with a title * in the styleSheets list. Otherwise, if style sheets from different sets * are enabled, then the return value must be null (there is no way to * determine what the currently selected style sheet set is in those * conditions). Otherwise, either all style sheets that have a title are * disabled, or there are no alternate style sheets, and * selectedStyleSheetSet must return the empty string. * * Setting this attribute to the null value must have no effect. * * Setting this attribute to a non-null value must call * enableStyleSheetsForSet() with that value as the function's argument, and * set lastStyleSheetSet to that value. * * From the DOM's perspective, all views have the same * selectedStyleSheetSet. If a UA supports multiple views with different * selected alternate style sheets, then this attribute (and the StyleSheet * interface's disabled attribute) must return and set the value for the * default view. * * @see */ attribute DOMString selectedStyleSheetSet; /* * This property must initially have the value null. Its value changes when * the selectedStyleSheetSet attribute is set. * * @see */ readonly attribute DOMString lastStyleSheetSet; /** * This must return the live list of the currently available style sheet * sets. This list is constructed by enumerating all the style sheets for * this document available to the implementation, in the order they are * listed in the styleSheets attribute, adding the title of each style sheet * with a title to the list, avoiding duplicates by dropping titles that * match (case-sensitively) titles that have already been added to the * list. * * @see */ readonly attribute nsIDOMDOMStringList styleSheetSets; /** * Calling this method must change the disabled attribute on each StyleSheet * object with a title attribute with a length greater than 0 in the * styleSheets attribute, so that all those whose title matches the name * argument are enabled, and all others are disabled. Title matches must be * case-sensitive. Calling this method with the empty string disables all * alternate and preferred style sheets (but does not change the state of * persistent style sheets, that is those with no title attribute). * * Calling this method with a null value must have no effect. * * Style sheets that do not have a title are never affected by this * method. This method does not change the values of the lastStyleSheetSet or * preferredStyleSheetSet attributes. * * @see */ void enableStyleSheetsForSet(in DOMString name); // CSSOM-View /** * Returns the element from the caller's document at the given point, * relative to the upper-left-most point in the (possibly scrolled) * window or frame. * * If the element at the given point belongs to another document (such as * an iframe's subdocument), the element in the calling document's DOM * (e.g. the iframe) is returned. If the element at the given point is * anonymous or XBL generated content, such as a textbox's scrollbars, then * the first non-anonymous parent element (that is, the textbox) is returned. * * This method returns null if either coordinate is negative, or if the * specified point lies outside the visible bounds of the document. * * Callers from XUL documents should wait until the onload event has fired * before calling this method. * * @see */ nsIDOMElement elementFromPoint(in float x, in float y); // Mozilla extensions /** * @see */ readonly attribute DOMString contentType; /** * True if this document is synthetic : stand alone image, video, audio file, * etc. */ readonly attribute boolean mozSyntheticDocument; /** * Returns the script element whose script is currently being processed. * * @see */ readonly attribute nsIDOMElement currentScript; /** * Release the current mouse capture if it is on an element within this * document. * * @see */ void releaseCapture(); /** * Use the given DOM element as the source image of target |-moz-element()|. * * This function introduces a new special ID (called "image element ID"), * which is only used by |-moz-element()|, and associates it with the given * DOM element. Image elements ID's have the higher precedence than general * HTML id's, so if |document.mozSetImageElement(, )| is called, * |-moz-element(#)| uses || as the source image even if there * is another element with id attribute = ||. To unregister an image * element ID ||, call |document.mozSetImageElement(, null)|. * * Example: * *
* * @param aImageElementId an image element ID to associate with * |aImageElement| * @param aImageElement a DOM element to be used as the source image of * |-moz-element(#aImageElementId)|. If this is null, the function will * unregister the image element ID |aImageElementId|. * * @see */ void mozSetImageElement(in DOMString aImageElementId, in nsIDOMElement aImageElement); /** * Element which is currently the full-screen element as per the DOM * full-screen api. * * @see */ readonly attribute nsIDOMElement mozFullScreenElement; /** * Causes the document to leave DOM full-screen mode, if it's in * full-screen mode, as per the DOM full-screen api. * * @see */ void mozCancelFullScreen(); /** * Denotes whether this document is in DOM full-screen mode, as per the DOM * full-screen api. * * @see */ readonly attribute boolean mozFullScreen; /** * Denotes whether the full-screen-api.enabled is true, no windowed * plugins are present, and all ancestor documents have the * mozallowfullscreen attribute set. * * @see */ readonly attribute boolean mozFullScreenEnabled; /** * The element to which the mouse pointer is locked, if any, as per the * DOM pointer lock api. * * @see */ readonly attribute nsIDOMElement mozPointerLockElement; /** * Exit pointer is lock if locked, as per the DOM pointer lock api. * * @see */ void mozExitPointerLock(); /** * Inline event handler for readystatechange events. */ [implicit_jscontext] attribute jsval onreadystatechange; [implicit_jscontext] attribute jsval onmouseenter; [implicit_jscontext] attribute jsval onmouseleave; /** * Visibility API implementation. */ readonly attribute boolean mozHidden; readonly attribute DOMString mozVisibilityState; };