Package org.htmlunit.html

# Class HtmlLink

java.lang.Object
org.htmlunit.html.DomNode
org.htmlunit.html.DomNamespaceNode
org.htmlunit.html.DomElement
org.htmlunit.html.HtmlElement
org.htmlunit.html.HtmlLink

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

public class HtmlLink extends HtmlElement
Wrapper for the HTML element "link". Note: This is not a clickable link, that one is an HtmlAnchor

See Also:
  - Serialized Form

- ## 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

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `TAG_NAME`
  The HTML tag represented by this element.

  ### Fields 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 Type
  Method
  Description
  `final String`
  `getCharsetAttribute()`
  Returns the value of the attribute `charset`.
  `HtmlElement.DisplayStyle`
  `getDefaultStyleDisplay()`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  Returns the default display style.
  `final String`
  `getHrefAttribute()`
  Returns the value of the attribute `href`.
  `final String`
  `getHrefLangAttribute()`
  Returns the value of the attribute `hreflang`.
  `final String`
  `getMediaAttribute()`
  Returns the value of the attribute `media`.
  `final String`
  `getRelAttribute()`
  Returns the value of the attribute `rel`.
  `final String`
  `getRevAttribute()`
  Returns the value of the attribute `rev`.
  `org.htmlunit.css.CssStyleSheet`
  `getSheet()`
  Returns the associated style sheet (only valid for links of type `<link rel="stylesheet" type="text/css" href="`
  `final String`
  `getTargetAttribute()`
  Returns the value of the attribute `target`.
  `final String`
  `getTypeAttribute()`
  Returns the value of the attribute `type`.
  `WebRequest`
  `getWebRequest()`
  Returns the request which will allow us to retrieve the content referenced by the `href` attribute.
  `WebResponse`
  `getWebResponse(boolean downloadIfNeeded)`
  POTENIAL PERFORMANCE KILLER - DOWNLOADS THE RESOURCE - USE AT YOUR OWN RISK.
  If the linked content is not already downloaded it triggers a download.
  `WebResponse`
  `getWebResponse(boolean downloadIfNeeded, WebRequest request)`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  If the linked content is not already downloaded it triggers a download.
  `boolean`
  `isActiveStyleSheetLink()`
  Experimental API: May be changed in next release and may not yet work perfectly!
  `boolean`
  `isModulePreloadLink()`
  `boolean`
  `isStyleSheetLink()`
  `boolean`
  `mayBeDisplayed()`
  Returns `true` if nodes of this type can ever be displayed, `false` otherwise.
  `void`
  `onAllChildrenAddedToPage(boolean postponed)`
  Lifecycle method invoked after a node and all its children have been added to a page, during parsing of the HTML.

  ### 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, setAttributeNS, 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, isEmptyXmlTagExpanded, 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, toString, writeStyleToElement`

  ### Methods inherited from class org.htmlunit.html.DomNamespaceNode

  `getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, processImportNode, 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, printChildrenAsXml, 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

    public static final String TAG_NAME
    The HTML tag represented by this element.
    See Also:
      - Constant Field Values

- ## 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.

  - ### getHrefAttribute

    public final String getHrefAttribute()
    Returns the value of the attribute `href`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `href` or an empty string if that attribute isn't defined.

  - ### getHrefLangAttribute

    public final String getHrefLangAttribute()
    Returns the value of the attribute `hreflang`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `hreflang` or an empty string if that attribute isn't defined.

  - ### 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.

  - ### getRelAttribute

    public final String getRelAttribute()
    Returns the value of the attribute `rel`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `rel` or an empty string if that attribute isn't defined.

  - ### getRevAttribute

    public final String getRevAttribute()
    Returns the value of the attribute `rev`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `rev` or an empty string if that attribute isn't defined.

  - ### getMediaAttribute

    public final String getMediaAttribute()
    Returns the value of the attribute `media`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `media` or an empty string if that attribute isn't defined.

  - ### getTargetAttribute

    public final String getTargetAttribute()
    Returns the value of the attribute `target`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `target` or an empty string if that attribute isn't defined.

  - ### getWebResponse

    public WebResponse getWebResponse(boolean downloadIfNeeded) throws IOException
    POTENIAL PERFORMANCE KILLER - DOWNLOADS THE RESOURCE - USE AT YOUR OWN RISK.
    If the linked content is not already downloaded it triggers a download. Then it stores the response for later use.
    Parameters:
      `downloadIfNeeded` - indicates if a request should be performed this hasn't been done previously
    Returns:
      `null` if no download should be performed and when this wasn't already done; the response received when performing a request for the content referenced by this tag otherwise
    Throws:
      `IOException` - if an error occurs while downloading the content

  - ### getWebResponse

    public WebResponse getWebResponse(boolean downloadIfNeeded, WebRequest request) throws IOException
    INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
    If the linked content is not already downloaded it triggers a download. Then it stores the response for later use.
    Parameters:
      `downloadIfNeeded` - indicates if a request should be performed this hasn't been done previously
      `request` - the request; if null getWebRequest() is called to create one
    Returns:
      `null` if no download should be performed and when this wasn't already done; the response received when performing a request for the content referenced by this tag otherwise
    Throws:
      `IOException` - if an error occurs while downloading the content

  - ### getWebRequest

    public WebRequest getWebRequest() throws MalformedURLException
    Returns the request which will allow us to retrieve the content referenced by the `href` attribute.
    Returns:
      the request which will allow us to retrieve the content referenced by the `href` attribute
    Throws:
      `MalformedURLException` - in case of problem resolving the URL

  - ### 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

  - ### 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()`

  - ### onAllChildrenAddedToPage

    public void onAllChildrenAddedToPage(boolean postponed)
    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

  - ### getSheet

    public org.htmlunit.css.CssStyleSheet getSheet()
    Returns the associated style sheet (only valid for links of type `<link rel="stylesheet" type="text/css" href="..." />`).
    Returns:
      the associated style sheet

  - ### isStyleSheetLink

    public boolean isStyleSheetLink()
    Returns:
      true if the rel attribute is 'stylesheet'

  - ### isModulePreloadLink

    public boolean isModulePreloadLink()
    Returns:
      true if the rel attribute is 'modulepreload'

  - ### isActiveStyleSheetLink

    public boolean isActiveStyleSheetLink()

    Experimental API: May be changed in next release and may not yet work perfectly!

    Verifies if the provided node is a link node pointing to an active stylesheet.
    Returns:
      true if the provided node is a stylesheet link