Package org.htmlunit.html
Class HtmlScript
java.lang.Object
org.htmlunit.html.DomNode
org.htmlunit.html.DomNamespaceNode
org.htmlunit.html.DomElement
org.htmlunit.html.HtmlElement
org.htmlunit.html.HtmlScript
- All Implemented Interfaces:
Serializable
,Cloneable
,ScriptElement
,Element
,Node
Wrapper for the HTML element "script".
When a script tag references an external script (with attribute src) it gets executed when the node is added to the DOM tree. When the script code is nested, it gets executed when the text node containing the script is added to the HtmlScript.
The ScriptFilter feature of NekoHtml can't be used because it doesn't allow immediate access to the DOM (i.e.
When a script tag references an external script (with attribute src) it gets executed when the node is added to the DOM tree. When the script code is nested, it gets executed when the text node containing the script is added to the HtmlScript.
The ScriptFilter feature of NekoHtml can't be used because it doesn't allow immediate access to the DOM (i.e.
document.write("<span id='mySpan'/>"); document.getElementById("mySpan").tagName;
can't work with a filter).- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.htmlunit.html.HtmlElement
HtmlElement.DisplayStyle
Nested classes/interfaces inherited from class org.htmlunit.html.DomElement
DomElement.ChildElementsIterator
Nested classes/interfaces inherited from class org.htmlunit.html.DomNode
DomNode.ChildIterator, DomNode.DescendantDomElementsIterator, DomNode.DescendantDomNodesIterator, DomNode.DescendantElementsIterator<T extends DomNode>, DomNode.DescendantHtmlElementsIterator
-
Field Summary
FieldsFields inherited from class org.htmlunit.html.HtmlElement
ATTRIBUTE_CHECKED, ATTRIBUTE_HIDDEN, ATTRIBUTE_REQUIRED, TAB_INDEX_OUT_OF_BOUNDS
Fields inherited from class org.htmlunit.html.DomElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTE
Fields inherited from class org.htmlunit.html.DomNode
PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED
Fields inherited from interface org.w3c.dom.Node
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
-
Method Summary
Modifier and TypeMethodDescriptionfinal String
Returns the value of the attributecharset
.INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.final String
Returns the value of the attributedefer
.final String
Returns the value of the attributeevent
.final String
Returns the value of the attributefor
.final String
Returns the value of the attributelanguage
.final String
final String
final String
Returns the value of the attributesrc
.final String
Returns the value of the attributetype
.boolean
Returnstrue
if this script is deferred.protected boolean
Indicates if a node without children should be written in expanded form as XML (i.e. with closing tag rather than with "/>")boolean
Returns if executed.void
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Marks this script as created by javascript.boolean
Returnstrue
if nodes of this type can ever be displayed,false
otherwise.void
onAllChildrenAddedToPage
(boolean postponed) Executes theonreadystatechange
handler, as well as executing the script itself, if necessary.protected void
printChildrenAsXml
(String indent, PrintWriter printWriter) Recursively writes the XML data for the node tree starting atnode
.void
processImportNode
(org.htmlunit.javascript.host.dom.Document doc) INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.void
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Resets the executed flag.protected void
setAttributeNS
(String namespaceURI, String qualifiedName, String attributeValue, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) If setting thesrc
attribute, this method executes the new JavaScript if necessary (behavior varies by browser version).void
setExecuted
(boolean executed) Sets if executed.toString()
Returns a string representation of this object.boolean
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns true if this frame was created by javascript.Methods inherited from class org.htmlunit.html.HtmlElement
acceptChar, addHtmlAttributeChangeListener, appendChildIfNoneExists, checkChildHierarchy, cloneNode, detach, doType, doType, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, getCanonicalXPath, getElementsByAttribute, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getLangAttribute, getNodeName, getOnClickAttribute, getOnDblClickAttribute, getOneHtmlElementByAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getSrcAttributeNormalized, getTabIndex, getTextDirectionAttribute, getXmlLangAttribute, handles, hasEventHandlers, isAltPressed, isAttributeCaseSensitive, isCtrlPressed, isDisplayed, isHidden, isOptional, isRequired, isRequiredSupported, isShiftPressed, isSubmittableByEnter, isValid, notifyAttributeChangeListeners, removeAttribute, removeChild, removeHtmlAttributeChangeListener, setAttributeNode, setHidden, setHidden, setOwningForm, setRequired, type, type, type, type, typeDone
Methods inherited from class org.htmlunit.html.DomElement
blur, click, click, click, click, click, dblClick, dblClick, doClickFireChangeEvent, doClickFireClickEvent, doClickStateUpdate, fireEvent, fireEvent, focus, getAttribute, getAttributeDirect, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getChildElementCount, getChildElements, getElementsByTagName, getElementsByTagNameNS, getEventTargetElement, getFirstElementChild, getId, getLastElementChild, getNodeType, getSchemaTypeInfo, getStaticElementsByTagName, getStyleElement, getStyleElementCaseInSensitive, getStyleMap, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isDisabledElementAndDisabled, isMouseOver, isStateUpdateFirst, matches, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, preventDefault, printOpeningTagContentAsXml, printXml, propagateClickStateUpdateToParent, removeAttributeNode, removeAttributeNS, removeFocus, removeStyleAttribute, replaceStyleAttribute, rightClick, rightClick, setAttribute, setAttributeNodeNS, setAttributeNS, setDefaults, setId, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInnerHtml, setNodeValue, writeStyleToElement
Methods inherited from class org.htmlunit.html.DomNamespaceNode
getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, setPrefix
Methods inherited from class org.htmlunit.html.DomNode
addCharacterDataChangeListener, addDomChangeListener, appendChild, asNormalizedText, asXml, basicRemove, closest, compareDocumentPosition, fireCharacterDataChanged, fireNodeAdded, fireNodeDeleted, getAncestors, getBaseURI, getByXPath, getByXPath, getChildNodes, getChildren, getDescendants, getDomElementDescendants, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstByXPath, getFirstChild, getHtmlElementDescendants, getHtmlPageOrNull, getIndex, getLastChild, getNextElementSibling, getNextSibling, getNodeValue, getOwnerDocument, getPage, getParentNode, getPreviousElementSibling, getPreviousSibling, getReadyState, getScriptableObject, getSelectorList, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, getVisibleText, hasChildNodes, hasFeature, insertBefore, insertBefore, isAncestorOf, isAncestorOfAny, isAttachedToPage, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, notifyIncorrectness, onAddedToDocumentFragment, onAddedToPage, parseHtmlSnippet, querySelector, querySelectorAll, quietlyRemoveAndMoveChildrenTo, remove, removeAllChildren, removeCharacterDataChangeListener, removeChild, removeDomChangeListener, replace, replaceChild, setEndLocation, setParentNode, setReadyState, setScriptableObject, setStartLocation, setTextContent, setUserData
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.w3c.dom.Node
appendChild, compareDocumentPosition, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setPrefix, setTextContent, setUserData
-
Field Details
-
TAG_NAME
The HTML tag represented by this element.- See Also:
-
-
Method Details
-
getCharsetAttribute
Returns the value of the attributecharset
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Returns:
- the value of the attribute
charset
or an empty string if that attribute isn't defined.
-
getScriptCharset
- Specified by:
getScriptCharset
in interfaceScriptElement
- Returns:
- the charset used for the script encoding
-
getTypeAttribute
Returns the value of the attributetype
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Returns:
- the value of the attribute
type
or an empty string if that attribute isn't defined.
-
getLanguageAttribute
Returns the value of the attributelanguage
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Returns:
- the value of the attribute
language
or an empty string if that attribute isn't defined.
-
getSrcAttribute
Returns the value of the attributesrc
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Returns:
- the value of the attribute
src
or an empty string if that attribute isn't defined.
-
getScriptSource
- Specified by:
getScriptSource
in interfaceScriptElement
- Returns:
- the script source url
-
getEventAttribute
Returns the value of the attributeevent
.- Returns:
- the value of the attribute
event
-
getHtmlForAttribute
Returns the value of the attributefor
.- Returns:
- the value of the attribute
for
-
getDeferAttribute
Returns the value of the attributedefer
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Returns:
- the value of the attribute
defer
or an empty string if that attribute isn't defined.
-
isDeferred
public boolean isDeferred()Returnstrue
if this script is deferred.- Specified by:
isDeferred
in interfaceScriptElement
- Returns:
true
if this script is deferred
-
mayBeDisplayed
public boolean mayBeDisplayed()Returnstrue
if nodes of this type can ever be displayed,false
otherwise. Examples of nodes that can never be displayed are<head>
,<meta>
,<script>
, etc.- Overrides:
mayBeDisplayed
in classDomNode
- Returns:
true
if nodes of this type can ever be displayed,false
otherwise- See Also:
-
setAttributeNS
protected void setAttributeNS(String namespaceURI, String qualifiedName, String attributeValue, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) If setting thesrc
attribute, this method executes the new JavaScript if necessary (behavior varies by browser version). Sets the value of the attribute specified by namespace and qualified name.- Overrides:
setAttributeNS
in classHtmlElement
- Parameters:
namespaceURI
- the URI that identifies an XML namespacequalifiedName
- the qualified name (prefix:local) of the attributeattributeValue
- the value of the attributenotifyAttributeChangeListeners
- to notify the associatedHtmlAttributeChangeListener
snotifyMutationObservers
- to notifyMutationObserver
s or not
-
onAllChildrenAddedToPage
public void onAllChildrenAddedToPage(boolean postponed) Executes theonreadystatechange
handler, as well as executing the script itself, if necessary. Lifecycle method invoked after a node and all its children have been added to a page, during parsing of the HTML. Intended to be overridden by nodes which need to perform custom logic after they and all their child nodes have been processed by the HTML parser. This method is not recursive, and the default implementation is empty, so there is no need to callsuper.onAllChildrenAddedToPage()
if you implement this method.- Overrides:
onAllChildrenAddedToPage
in classDomNode
- Parameters:
postponed
- whether to usePostponedAction
or no
-
isEmptyXmlTagExpanded
protected boolean isEmptyXmlTagExpanded()Indicates if a node without children should be written in expanded form as XML (i.e. with closing tag rather than with "/>")- Overrides:
isEmptyXmlTagExpanded
in classDomElement
- Returns:
true
to make generated XML readable as HTML
-
printChildrenAsXml
Recursively writes the XML data for the node tree starting atnode
.- Overrides:
printChildrenAsXml
in classDomNode
- Parameters:
indent
- white space to indent child nodesprintWriter
- writer where child nodes are written
-
resetExecuted
public void resetExecuted()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Resets the executed flag.- See Also:
-
processImportNode
public void processImportNode(org.htmlunit.javascript.host.dom.Document doc) Description copied from class:DomNamespaceNode
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.- Overrides:
processImportNode
in classDomNamespaceNode
- Parameters:
doc
- the import target document- See Also:
-
toString
Returns a string representation of this object.- Overrides:
toString
in classDomElement
- Returns:
- a string representation of this object
-
getDefaultStyleDisplay
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.- Overrides:
getDefaultStyleDisplay
in classHtmlElement
- Returns:
- the default display style
-
markAsCreatedByDomParser
public void markAsCreatedByDomParser()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Marks this script as created by javascript. Spec: The following scripts will not execute: scripts in XMLHttpRequest's responseXML documents, scripts in DOMParser-created documents, scripts in documents created by XSLTProcessor's transformToDocument feature, and scripts that are first inserted by a script into a Document that was created using the createDocument() API- Specified by:
markAsCreatedByDomParser
in interfaceScriptElement
-
wasCreatedByDomParser
public boolean wasCreatedByDomParser()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns true if this frame was created by javascript.- Specified by:
wasCreatedByDomParser
in interfaceScriptElement
- Returns:
- true or false
-
isExecuted
public boolean isExecuted()Returns if executed.- Specified by:
isExecuted
in interfaceScriptElement
- Returns:
- if executed
-
setExecuted
public void setExecuted(boolean executed) Sets if executed.- Specified by:
setExecuted
in interfaceScriptElement
- Parameters:
executed
- if executed
-