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 HtmlElement
HtmlElement.DisplayStyleNested classes/interfaces inherited from class DomElement
DomElement.ChildElementsIteratorNested classes/interfaces inherited from class DomNode
DomNode.ChildIterator, DomNode.DescendantElementsIterator<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate booleanstatic final StringThe HTML tag represented by this element.Fields inherited from class HtmlElement
ATTRIBUTE_CHECKED, ATTRIBUTE_REQUIRED, TAB_INDEX_OUT_OF_BOUNDSFields inherited from class DomElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTEFields inherited from class DomNode
PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZEDFields inherited from interface 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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal StringReturns the value of the attributecharset.INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.final StringReturns the value of the attributedefer.final StringReturns the value of the attributeevent.final StringReturns the value of the attributefor.final StringReturns the value of the attributelanguage.private StringGets the script held within the script tag.final StringReturns the value of the attributesrc.final StringReturns the value of the attributetype.booleanReturnstrueif this script is deferred.protected booleanIndicates if a node without children should be written in expanded form as XML (i.e.booleanReturns if executed.voidINTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Marks this script as created by javascript.booleanReturnstrueif nodes of this type can ever be displayed,falseotherwise.voidonAllChildrenAddedToPage(boolean postponed) Executes theonreadystatechangehandler, as well as executing the script itself, if necessary.protected voidprintChildrenAsXml(String indent, PrintWriter printWriter) Recursively writes the XML data for the node tree starting atnode.voidINTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.voidINTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Resets the executed flag.protected voidsetAttributeNS(String namespaceURI, String qualifiedName, String attributeValue, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) If setting thesrcattribute, this method executes the new JavaScript if necessary (behavior varies by browser version).voidsetExecuted(boolean executed) Sets if executed.toString()Returns a string representation of this object.booleanINTERNAL 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 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, setOwningForm, setRequired, type, type, type, type, typeDoneMethods inherited from class 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, getElementsByTagNameImpl, getElementsByTagNameNS, getEventTargetElement, getFirstElementChild, getId, getLastElementChild, getNodeType, getQualifiedName, getSchemaTypeInfo, 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, writeStyleToElementMethods inherited from class DomNamespaceNode
getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, setPrefixMethods inherited from class 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, setUserDataMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface 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
-
executed_
private boolean executed_ -
createdByDomParser_
private boolean createdByDomParser_
-
-
Constructor Details
-
HtmlScript
-
-
Method Details
-
getCharsetAttribute
Returns the value of the attributecharset. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Specified by:
getCharsetAttributein interfaceScriptElement- Returns:
- the value of the attribute
charsetor an empty string if that attribute isn't defined.
-
getTypeAttribute
-
getLanguageAttribute
-
getSrcAttribute
Returns the value of the attributesrc. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Specified by:
getSrcAttributein interfaceScriptElement- Returns:
- the value of the attribute
srcor an empty string if that attribute isn't defined.
-
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
-
isDeferred
public boolean isDeferred()Returnstrueif this script is deferred.- Specified by:
isDeferredin interfaceScriptElement- Returns:
trueif this script is deferred
-
mayBeDisplayed
public boolean mayBeDisplayed()Returnstrueif nodes of this type can ever be displayed,falseotherwise. Examples of nodes that can never be displayed are<head>,<meta>,<script>, etc.- Overrides:
mayBeDisplayedin classDomNode- Returns:
trueif nodes of this type can ever be displayed,falseotherwise- See Also:
-
setAttributeNS
protected void setAttributeNS(String namespaceURI, String qualifiedName, String attributeValue, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) If setting thesrcattribute, 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:
setAttributeNSin 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 associatedHtmlAttributeChangeListenersnotifyMutationObservers- to notifyMutationObservers or not
-
onAllChildrenAddedToPage
public void onAllChildrenAddedToPage(boolean postponed) Executes theonreadystatechangehandler, 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:
onAllChildrenAddedToPagein classDomNode- Parameters:
postponed- whether to usePostponedActionor no
-
getScriptCode
Gets the script held within the script tag. -
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:
isEmptyXmlTagExpandedin classDomElement- Returns:
trueto make generated XML readable as HTML
-
printChildrenAsXml
Recursively writes the XML data for the node tree starting atnode.- Overrides:
printChildrenAsXmlin 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
Description copied from class:DomNamespaceNodeINTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Lifecycle method to support special processing for js method importNode.- Overrides:
processImportNodein classDomNamespaceNode- Parameters:
doc- the import target document- See Also:
-
toString
Returns a string representation of this object.- Overrides:
toStringin 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:
getDefaultStyleDisplayin 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:
markAsCreatedByDomParserin 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:
wasCreatedByDomParserin interfaceScriptElement- Returns:
- true or false
-
isExecuted
public boolean isExecuted()Returns if executed.- Specified by:
isExecutedin interfaceScriptElement- Returns:
- if executed
-
setExecuted
public void setExecuted(boolean executed) Sets if executed.- Specified by:
setExecutedin interfaceScriptElement- Parameters:
executed- if executed
-