/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2000 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Vidur Apparao (original author) * Johnny Stenback * Jonas Sicking * Ms2ger * Tom Pixley * Boris Zbarsky * Robert Sayre * * Alternatively, the contents of this file may be used under the terms of * either of the GNU General Public License Version 2 or later (the "GPL"), * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsIDOMNode.idl" interface nsIDOMNodeIterator; interface nsIDOMNodeFilter; interface nsIDOMTreeWalker; interface nsIDOMLocation; interface nsIDOMCaretPosition; /** * 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(d19897dc-948a-42e7-8ac6-d8a0bd141b85)] 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: nsIDOMNode importNode(in nsIDOMNode importedNode, 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 xmlEncoding; // Introduced in DOM Level 3: attribute boolean xmlStandalone; // raises(DOMException) on setting // Introduced in DOM Level 3: attribute DOMString xmlVersion; // raises(DOMException) on setting // Introduced in DOM Level 3: 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(); nsIDOMNodeIterator createNodeIterator(in nsIDOMNode root, in unsigned long whatToShow, in nsIDOMNodeFilter filter, in boolean entityReferenceExpansion) raises(DOMException); nsIDOMTreeWalker createTreeWalker(in nsIDOMNode root, in unsigned long whatToShow, in nsIDOMNodeFilter filter, in boolean entityReferenceExpansion) 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); nsIDOMCaretPosition caretPositionFromPoint(in float x, in float y); };