Package org.htmlunit.html

# Class HtmlAnchor

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

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

public class HtmlAnchor extends HtmlElement
Wrapper for the HTML element "a".

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
  `<P extends Page>
  P`
  `click(org.htmlunit.javascript.host.event.Event event, boolean shiftKey, boolean ctrlKey, boolean altKey, boolean ignoreVisibility)`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  Simulates clicking on this element, returning the page in the window that has the focus after the element has been clicked.
  `protected boolean`
  `doClickStateUpdate(boolean shiftKey, boolean ctrlKey)`
  This method implements the control state update part of the click action.
  `protected void`
  `doClickStateUpdate(boolean shiftKey, boolean ctrlKey, String hrefSuffix)`
  Same as `doClickStateUpdate(boolean, boolean)`, except that it accepts an `href` suffix, needed when a click is performed on an image map to pass information on the click position.
  `final String`
  `getAccessKeyAttribute()`
  Returns the value of the attribute `accesskey`.
  `final String`
  `getCharsetAttribute()`
  Returns the value of the attribute `charset`.
  `final String`
  `getCoordsAttribute()`
  Returns the value of the attribute `coords`.
  `HtmlElement.DisplayStyle`
  `getDefaultStyleDisplay()`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  Returns the default display style.
  `final String`
  `getDownloadAttribute()`
  Returns the value of the attribute `download`.
  `final String`
  `getHrefAttribute()`
  Returns the value of the attribute `href`.
  `final String`
  `getHrefLangAttribute()`
  Returns the value of the attribute `hreflang`.
  `final String`
  `getNameAttribute()`
  Returns the value of the attribute `name`.
  `final String`
  `getOnBlurAttribute()`
  Returns the value of the attribute `onblur`.
  `final String`
  `getOnFocusAttribute()`
  Returns the value of the attribute `onfocus`.
  `final String`
  `getPingAttribute()`
  Returns the value of the attribute `ping`.
  `final String`
  `getRelAttribute()`
  Returns the value of the attribute `rel`.
  `final String`
  `getRevAttribute()`
  Returns the value of the attribute `rev`.
  `final String`
  `getShapeAttribute()`
  Returns the value of the attribute `shape`.
  `final String`
  `getTabIndexAttribute()`
  Returns the value of the attribute `tabindex`.
  `final String`
  `getTargetAttribute()`
  Returns the value of the attribute `target`.
  `static URL`
  `getTargetUrl(String href, HtmlPage page)`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  `final String`
  `getTypeAttribute()`
  Returns the value of the attribute `type`.
  `boolean`
  `handles(org.htmlunit.javascript.host.event.Event event)`
  Indicates if the provided event can be applied to this node.
  `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 "/>")
  `final Page`
  `openLinkInNewWindow()`
  Open this link in a new window, much as web browsers do when you shift-click a link or use the context menu to open in a new window.

  ### 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, 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, dblClick, dblClick, doClickFireChangeEvent, doClickFireClickEvent, 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, 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, mayBeDisplayed, normalize, notifyIncorrectness, onAddedToDocumentFragment, onAddedToPage, onAllChildrenAddedToPage, 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

  - ### click

    public <P extends Page> P click(org.htmlunit.javascript.host.event.Event event, boolean shiftKey, boolean ctrlKey, boolean altKey, boolean ignoreVisibility) throws IOException
    INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
    Simulates clicking on this element, returning the page in the window that has the focus after the element has been clicked. Note that the returned page may or may not be the same as the original page, depending on the type of element being clicked, the presence of JavaScript action listeners, etc.
    Overrides:
      `click` in class `DomElement`
    Type Parameters:
      `P` - the page type
    Parameters:
      `event` - the click event used
      `shiftKey` - `true` if SHIFT is pressed during the click
      `ctrlKey` - `true` if CTRL is pressed during the click
      `altKey` - `true` if ALT is pressed during the click
      `ignoreVisibility` - whether to ignore visibility or not
    Returns:
      the page contained in the current window as returned by `WebClient.getCurrentWindow()`
    Throws:
      `IOException` - if an IO error occurs

  - ### doClickStateUpdate

    protected void doClickStateUpdate(boolean shiftKey, boolean ctrlKey, String hrefSuffix) throws IOException
    Same as `doClickStateUpdate(boolean, boolean)`, except that it accepts an `href` suffix, needed when a click is performed on an image map to pass information on the click position.
    Parameters:
      `shiftKey` - `true` if SHIFT is pressed
      `ctrlKey` - `true` if CTRL is pressed
      `hrefSuffix` - the suffix to add to the anchor's `href` attribute (for instance coordinates from an image map)
    Throws:
      `IOException` - if an IO error occurs

  - ### getTargetUrl

    public static URL getTargetUrl(String href, HtmlPage page) throws MalformedURLException
    INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
    Parameters:
      `href` - the href
      `page` - the HtmlPage
    Returns:
      the calculated target url.
    Throws:
      `MalformedURLException` - if an IO error occurs

  - ### doClickStateUpdate

    protected boolean doClickStateUpdate(boolean shiftKey, boolean ctrlKey) throws IOException
    This method implements the control state update part of the click action.

    The default implementation only calls doClickStateUpdate on parent's DomElement (if any). Subclasses requiring different behavior (like `HtmlSubmitInput`) will override this method.

    Overrides:
      `doClickStateUpdate` in class `DomElement`
    Parameters:
      `shiftKey` - `true` if SHIFT is pressed
      `ctrlKey` - `true` if CTRL is pressed
    Returns:
      true if doClickFireEvent method has to be called later on (to signal, that the value was changed)
    Throws:
      `IOException` - if an IO error occurs

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

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

  - ### getNameAttribute

    public final String getNameAttribute()
    Returns the value of the attribute `name`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `name` 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

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

  - ### getAccessKeyAttribute

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

  - ### getShapeAttribute

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

  - ### getCoordsAttribute

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

  - ### getTabIndexAttribute

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

  - ### getOnFocusAttribute

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

  - ### getOnBlurAttribute

    public final String getOnBlurAttribute()
    Returns the value of the attribute `onblur`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `onblur` 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

  - ### openLinkInNewWindow

    public final Page openLinkInNewWindow() throws MalformedURLException
    Open this link in a new window, much as web browsers do when you shift-click a link or use the context menu to open in a new window.

    It should be noted that even web browsers will sometimes not give the expected result when using this method of following links. Links that have no real href and rely on JavaScript to do their work will fail.

    Returns:
      the page opened by this link, nested in a new `TopLevelWindow`
    Throws:
      `MalformedURLException` - if the href could not be converted to a valid URL

  - ### isEmptyXmlTagExpanded

    protected boolean isEmptyXmlTagExpanded()
    Description copied from class: `DomElement`
    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:
      `false` by default

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

  - ### handles

    public boolean handles(org.htmlunit.javascript.host.event.Event event)
    Indicates if the provided event can be applied to this node. Overwrite this.
    Overrides:
      `handles` in class `HtmlElement`
    Parameters:
      `event` - the event
    Returns:
      `false` if the event can't be applied

  - ### getPingAttribute

    public final String getPingAttribute()
    Returns the value of the attribute `ping`.
    Returns:
      the value of the attribute `ping`

  - ### getDownloadAttribute

    public final String getDownloadAttribute()
    Returns the value of the attribute `download`.
    Returns:
      the value of the attribute `download`