/* * Copyright (C) 2006, 2007, 2009, 2015 Apple Inc. All rights reserved. * Copyright (C) 2006 Samuel Weinig * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ [ JSCustomHeader, JSGenerateToNativeObject, ] interface Element : Node { // DOM Level 1 Core [TreatReturnedNullStringAs=Null] readonly attribute DOMString tagName; [TreatReturnedNullStringAs=Null] DOMString getAttribute([Default=Undefined] optional DOMString name); [ObjCLegacyUnnamedParameters, RaisesException] void setAttribute([Default=Undefined] optional DOMString name, [Default=Undefined] optional DOMString value); void removeAttribute([Default=Undefined] optional DOMString name); Attr getAttributeNode([Default=Undefined] optional DOMString name); [RaisesException] Attr setAttributeNode([Default=Undefined] optional Attr newAttr); [RaisesException] Attr removeAttributeNode([Default=Undefined] optional Attr oldAttr); #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C [ImplementedAs=getElementsByTagNameForObjC] NodeList getElementsByTagName([Default=Undefined] optional DOMString name); #else HTMLCollection getElementsByTagName([Default=Undefined] optional DOMString name); #endif #if !defined(LANGUAGE_OBJECTIVE_C) // For ObjC this is defined on Node for legacy support. readonly attribute NamedNodeMap attributes; boolean hasAttributes(); #endif // DOM Level 2 Core [ObjCLegacyUnnamedParameters, TreatReturnedNullStringAs=Null] DOMString getAttributeNS([TreatNullAs=NullString, TreatUndefinedAs=NullString, Default=Undefined] optional DOMString namespaceURI, [Default=Undefined] optional DOMString localName); [ObjCLegacyUnnamedParameters, RaisesException] void setAttributeNS([TreatNullAs=NullString, TreatUndefinedAs=NullString, Default=Undefined] optional DOMString namespaceURI, [Default=Undefined] optional DOMString qualifiedName, [Default=Undefined] optional DOMString value); [ObjCLegacyUnnamedParameters] void removeAttributeNS([TreatNullAs=NullString, TreatUndefinedAs=NullString] DOMString namespaceURI, DOMString localName); #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C [ObjCLegacyUnnamedParameters, ImplementedAs=getElementsByTagNameNSForObjC] NodeList getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI, [Default=Undefined] optional DOMString localName); #else HTMLCollection getElementsByTagNameNS([TreatNullAs=NullString,Default=Undefined] optional DOMString namespaceURI, [Default=Undefined] optional DOMString localName); #endif [ObjCLegacyUnnamedParameters] Attr getAttributeNodeNS([TreatNullAs=NullString, TreatUndefinedAs=NullString, Default=Undefined] optional DOMString namespaceURI, [Default=Undefined] optional DOMString localName); [RaisesException] Attr setAttributeNodeNS([Default=Undefined] optional Attr newAttr); boolean hasAttribute(DOMString name); [ObjCLegacyUnnamedParameters] boolean hasAttributeNS([TreatNullAs=NullString, TreatUndefinedAs=NullString, Default=Undefined] optional DOMString namespaceURI, [Default=Undefined] optional DOMString localName); [ImplementedAs=cssomStyle] readonly attribute CSSStyleDeclaration style; // DOM 4 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C [Reflect] attribute DOMString id; #endif // Common extensions #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C readonly attribute long offsetLeft; readonly attribute long offsetTop; readonly attribute long offsetWidth; readonly attribute long offsetHeight; readonly attribute long clientLeft; readonly attribute long clientTop; readonly attribute long clientWidth; readonly attribute long clientHeight; #else readonly attribute double offsetLeft; readonly attribute double offsetTop; readonly attribute double offsetWidth; readonly attribute double offsetHeight; readonly attribute double clientLeft; readonly attribute double clientTop; readonly attribute double clientWidth; readonly attribute double clientHeight; #endif attribute long scrollLeft; attribute long scrollTop; readonly attribute long scrollWidth; readonly attribute long scrollHeight; [ImplementedAs=bindingsOffsetParent] readonly attribute Element offsetParent; void focus(); void blur(); void scrollIntoView(optional boolean alignWithTop); sequence getAttributeNames(); // WebKit extensions void scrollIntoViewIfNeeded(optional boolean centerIfNeeded); void scrollByLines([Default=Undefined] optional long lines); void scrollByPages([Default=Undefined] optional long pages); // HTML 5 #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C [ImplementedAs=getElementsByClassNameForObjC] NodeList getElementsByClassName([Default=Undefined] optional DOMString name); #else HTMLCollection getElementsByClassName([Default=Undefined] optional DOMString name); #endif [TreatNullAs=NullString, SetterRaisesException] attribute DOMString innerHTML; [TreatNullAs=NullString, SetterRaisesException] attribute DOMString outerHTML; [Reflect=class] attribute DOMString className; [PutForwards=value] readonly attribute DOMTokenList classList; #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT readonly attribute DOMStringMap dataset; #endif [RaisesException] boolean matches(DOMString selectors); [RaisesException] Element closest(DOMString selectors); [ImplementedAs=matches, RaisesException] boolean webkitMatchesSelector(DOMString selectors); #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT // CSSOM View Module API ClientRectList getClientRects(); ClientRect getBoundingClientRect(); #endif #if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C // Objective-C extensions readonly attribute DOMString innerText; #endif #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API // Mozilla version const unsigned short ALLOW_KEYBOARD_INPUT = 1; void webkitRequestFullScreen([Default=Undefined] optional unsigned short flags); // W3C version void webkitRequestFullscreen(); #endif #if defined(ENABLE_INDIE_UI) && ENABLE_INDIE_UI [Reflect] attribute DOMString uiactions; #endif [Conditional=POINTER_LOCK] void requestPointerLock(); // CSS Regions API [Conditional=CSS_REGIONS] readonly attribute DOMString webkitRegionOverset; [Conditional=CSS_REGIONS] sequence webkitGetRegionFlowRanges(); // Shadow DOM API #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT [Conditional=SHADOW_DOM, RaisesException] ShadowRoot attachShadow(Dictionary options); [Conditional=SHADOW_DOM, ImplementedAs=shadowRootForBindings, CallWith=ScriptState] readonly attribute ShadowRoot shadowRoot; [Conditional=SHADOW_DOM, Reflect] attribute DOMString slot; #endif // Event Handlers // Unique to Element and Document // FIXME: Should these be exposed on Window as well (and therefore moved to GlobalEventHandlers.idl)? [NotEnumerable] attribute EventHandler onbeforecopy; [NotEnumerable] attribute EventHandler onbeforecut; [NotEnumerable] attribute EventHandler onbeforepaste; [NotEnumerable] attribute EventHandler oncopy; [NotEnumerable] attribute EventHandler oncut; [NotEnumerable] attribute EventHandler onpaste; [NotEnumerable] attribute EventHandler onselectstart; [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenchange; [NotEnumerable, Conditional=FULLSCREEN_API] attribute EventHandler onwebkitfullscreenerror; // Unique to Element and DOMWindow // FIXME: Should these be exposed on Document as well (and therefore moved to GlobalEventHandlers.idl)? [NotEnumerable] attribute EventHandler onanimationend; [NotEnumerable] attribute EventHandler onanimationiteration; [NotEnumerable] attribute EventHandler onanimationstart; [NotEnumerable] attribute EventHandler ontransitionend; [NotEnumerable] attribute EventHandler onwebkitanimationend; [NotEnumerable] attribute EventHandler onwebkitanimationiteration; [NotEnumerable] attribute EventHandler onwebkitanimationstart; [NotEnumerable] attribute EventHandler onwebkittransitionend; [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturechange; [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongestureend; [NotEnumerable, Conditional=IOS_GESTURE_EVENTS] attribute EventHandler ongesturestart; // Unique to Element, HTMLBodyElement and HTMLFrameSetElement [NotEnumerable] attribute EventHandler onfocusin; [NotEnumerable] attribute EventHandler onfocusout; // Unique to Element [NotEnumerable] attribute EventHandler onbeforeload; [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventHandler onwebkitkeyadded; [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventHandler onwebkitkeyerror; [NotEnumerable, Conditional=ENCRYPTED_MEDIA] attribute EventHandler onwebkitkeymessage; [NotEnumerable, Conditional=ENCRYPTED_MEDIA|ENCRYPTED_MEDIA_V2] attribute EventHandler onwebkitneedkey; [NotEnumerable, Conditional=VIDEO_PRESENTATION_MODE] attribute EventHandler onwebkitpresentationmodechanged; [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitcurrentplaybacktargetiswirelesschanged; [NotEnumerable, Conditional=WIRELESS_PLAYBACK_TARGET] attribute EventHandler onwebkitplaybacktargetavailabilitychanged; }; Element implements ChildNode; Element implements ParentNode; Element implements NonDocumentTypeChildNode; Element implements GlobalEventHandlers;