Class HtmlScript

All Implemented Interfaces:
Serializable, Cloneable, ScriptElement, Element, Node

public class HtmlScript extends HtmlElement implements ScriptElement
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. document.write("<span id='mySpan'/>"); document.getElementById("mySpan").tagName; can't work with a filter).
See Also:
  • Field Details

  • Method Details

    • getCharsetAttribute

      public final String getCharsetAttribute()
      Returns the value of the attribute charset. 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

      public final String getScriptCharset()
      Specified by:
      getScriptCharset in interface ScriptElement
      Returns:
      the charset used for the script encoding
    • getTypeAttribute

      public final String getTypeAttribute()
      Returns the value of the attribute type. 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

      public final String getLanguageAttribute()
      Returns the value of the attribute language. 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

      public final String getSrcAttribute()
      Returns the value of the attribute src. 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

      public final String getScriptSource()
      Specified by:
      getScriptSource in interface ScriptElement
      Returns:
      the script source url
    • getEventAttribute

      public final String getEventAttribute()
      Returns the value of the attribute event.
      Returns:
      the value of the attribute event
    • getHtmlForAttribute

      public final String getHtmlForAttribute()
      Returns the value of the attribute for.
      Returns:
      the value of the attribute for
    • getDeferAttribute

      public final String getDeferAttribute()
      Returns the value of the attribute defer. 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()
      Returns true if this script is deferred.
      Specified by:
      isDeferred in interface ScriptElement
      Returns:
      true if this script is deferred
    • mayBeDisplayed

      public boolean mayBeDisplayed()
      Returns true 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 class DomNode
      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 the src 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 class HtmlElement
      Parameters:
      namespaceURI - the URI that identifies an XML namespace
      qualifiedName - the qualified name (prefix:local) of the attribute
      attributeValue - the value of the attribute
      notifyAttributeChangeListeners - to notify the associated HtmlAttributeChangeListeners
      notifyMutationObservers - to notify MutationObservers or not
    • onAllChildrenAddedToPage

      public void onAllChildrenAddedToPage(boolean postponed)
      Executes the onreadystatechange 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 call super.onAllChildrenAddedToPage() if you implement this method.
      Overrides:
      onAllChildrenAddedToPage in class DomNode
      Parameters:
      postponed - whether to use PostponedAction 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 class DomElement
      Returns:
      true to make generated XML readable as HTML
    • printChildrenAsXml

      protected void printChildrenAsXml(String indent, PrintWriter printWriter)
      Recursively writes the XML data for the node tree starting at node.
      Overrides:
      printChildrenAsXml in class DomNode
      Parameters:
      indent - white space to indent child nodes
      printWriter - 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 class DomNamespaceNode
      Parameters:
      doc - the import target document
      See Also:
    • toString

      public String toString()
      Returns a string representation of this object.
      Overrides:
      toString in class DomElement
      Returns:
      a string representation of this object
    • getDefaultStyleDisplay

      public HtmlElement.DisplayStyle getDefaultStyleDisplay()
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      Returns the default display style.
      Overrides:
      getDefaultStyleDisplay in class HtmlElement
      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 interface ScriptElement
    • 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 interface ScriptElement
      Returns:
      true or false
    • isExecuted

      public boolean isExecuted()
      Returns if executed.
      Specified by:
      isExecuted in interface ScriptElement
      Returns:
      if executed
    • setExecuted

      public void setExecuted(boolean executed)
      Sets if executed.
      Specified by:
      setExecuted in interface ScriptElement
      Parameters:
      executed - if executed