1 /* 2 * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 3 * Copyright (C) 2006 Samuel Weinig <sam.weinig (at) gmail.com> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public License 16 * along with this library; see the file COPYING.LIB. If not, write to 17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 */ 20 21 [ 22 CustomToV8, 23 DependentLifetime 24 ] interface Node : EventTarget { 25 // NodeType 26 const unsigned short ELEMENT_NODE = 1; 27 const unsigned short ATTRIBUTE_NODE = 2; 28 const unsigned short TEXT_NODE = 3; 29 const unsigned short CDATA_SECTION_NODE = 4; 30 const unsigned short ENTITY_REFERENCE_NODE = 5; // EntityReference nodes are impossible to create in WebKit. 31 const unsigned short ENTITY_NODE = 6; 32 const unsigned short PROCESSING_INSTRUCTION_NODE = 7; 33 const unsigned short COMMENT_NODE = 8; 34 const unsigned short DOCUMENT_NODE = 9; 35 const unsigned short DOCUMENT_TYPE_NODE = 10; 36 const unsigned short DOCUMENT_FRAGMENT_NODE = 11; 37 const unsigned short NOTATION_NODE = 12; 38 39 [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString nodeName; 40 41 // FIXME: the spec says this can also raise on retrieval. 42 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, CustomElementCallbacks=Enable] attribute DOMString nodeValue; 43 44 [PerWorldBindings] readonly attribute unsigned short nodeType; 45 [PerWorldBindings] readonly attribute Node parentNode; 46 [PerWorldBindings] readonly attribute NodeList childNodes; 47 [PerWorldBindings] readonly attribute Node firstChild; 48 [PerWorldBindings] readonly attribute Node lastChild; 49 [PerWorldBindings] readonly attribute Node previousSibling; 50 [PerWorldBindings] readonly attribute Node nextSibling; 51 [PerWorldBindings] readonly attribute Document ownerDocument; 52 53 [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node insertBefore(Node newChild, Node refChild); 54 [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node replaceChild(Node newChild, Node oldChild); 55 [Custom, PerWorldBindings, RaisesException] Node removeChild(Node oldChild); 56 [Custom, PerWorldBindings, ActivityLog=AccessForIsolatedWorlds, RaisesException] Node appendChild(Node newChild); 57 58 boolean hasChildNodes(); 59 [CustomElementCallbacks=Enable, PerWorldBindings] 60 Node cloneNode(optional boolean deep); 61 [CustomElementCallbacks=Enable] void normalize(); 62 63 // Introduced in DOM Level 2: 64 boolean isSupported([Default=Undefined] optional DOMString feature, 65 [TreatNullAs=NullString,Default=Undefined] optional DOMString version); 66 67 [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString namespaceURI; 68 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException] attribute DOMString prefix; 69 [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString localName; 70 71 // Introduced in DOM Level 3: 72 [TreatReturnedNullStringAs=Null, PerWorldBindings] readonly attribute DOMString baseURI; 73 74 // FIXME: the spec says this can also raise on retrieval. 75 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString, PerWorldBindings, SetterRaisesException, CustomElementCallbacks=Enable] attribute DOMString textContent; 76 77 boolean isSameNode([Default=Undefined] optional Node other); 78 boolean isEqualNode([Default=Undefined] optional Node other); 79 [TreatReturnedNullStringAs=Null] DOMString lookupPrefix([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI); 80 boolean isDefaultNamespace([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI); 81 [TreatReturnedNullStringAs=Null] DOMString lookupNamespaceURI([TreatNullAs=NullString,Default=Undefined] optional DOMString prefix); 82 83 // DocumentPosition 84 const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01; 85 const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02; 86 const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04; 87 const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08; 88 const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10; 89 const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20; 90 91 unsigned short compareDocumentPosition([Default=Undefined] optional Node other); 92 93 // Introduced in DOM4 94 [ImplementedAs=bindingsContains] boolean contains([Default=Undefined] optional Node other); 95 96 // IE extensions 97 [PerWorldBindings] readonly attribute Element parentElement; 98 }; 99