Class HtmlScript

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, ScriptElement, org.w3c.dom.Element, org.w3c.dom.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:
    DOM Level 1, DOM Level 2, Serialized Form
    • Field Detail

      • TAG_NAME

        public static final java.lang.String TAG_NAME
        The HTML tag represented by this element.
        See Also:
        Constant Field Values
    • Method Detail

      • getCharsetAttribute

        public final java.lang.String getCharsetAttribute()
        Returns the value of the attribute charset. Refer to the HTML 4.01 documentation for details on the use of this attribute.
        Specified by:
        getCharsetAttribute in interface ScriptElement
        Returns:
        the value of the attribute charset or an empty string if that attribute isn't defined.
      • getTypeAttribute

        public final java.lang.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 java.lang.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 java.lang.String getSrcAttribute()
        Returns the value of the attribute src. Refer to the HTML 4.01 documentation for details on the use of this attribute.
        Specified by:
        getSrcAttribute in interface ScriptElement
        Returns:
        the value of the attribute src or an empty string if that attribute isn't defined.
      • getEventAttribute

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

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

        public final java.lang.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:
        DomNode.isDisplayed()
      • setAttributeNS

        protected void setAttributeNS​(java.lang.String namespaceURI,
                                      java.lang.String qualifiedName,
                                      java.lang.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 when simulating IE, 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​(java.lang.String indent,
                                          java.io.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(Document)
      • toString

        public java.lang.String toString()
        Returns a string representation of this object.
        Overrides:
        toString in class DomElement
        Returns:
        a string representation of this object
      • 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. This is needed to handle some special IE behavior.
        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