Class: Dommy::HTMLAnchorElement

Inherits:
HTMLElement show all
Includes:
HyperlinkActivation
Defined in:
lib/dommy/html_elements.rb

Constant Summary

Constants inherited from Element

Element::ADJACENT_POSITIONS, Element::APPROX_CHAR_PX, Element::APPROX_LINE_PX, Element::ATTRIBUTE_NODE, Element::CDATA_SECTION_NODE, Element::COMMENT_NODE, Element::DOCUMENT_FRAGMENT_NODE, Element::DOCUMENT_NODE, Element::DOCUMENT_POSITION_CONTAINED_BY, Element::DOCUMENT_POSITION_CONTAINS, Element::DOCUMENT_POSITION_DISCONNECTED, Element::DOCUMENT_POSITION_FOLLOWING, Element::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, Element::DOCUMENT_POSITION_PRECEDING, Element::DOCUMENT_TYPE_NODE, Element::ELEMENT_NODE, Element::HTML_NAMESPACE, Element::INLINE_TAGS, Element::PROCESSING_INSTRUCTION_NODE, Element::REFLECTED_TOKEN_LIST_HOSTS, Element::SHADOW_HOST_TAGS, Element::SVG_NAMESPACE, Element::TEXT_NODE

Constants included from Node

Node::ATTRIBUTE_NODE, Node::CDATA_SECTION_NODE, Node::COMMENT_NODE, Node::DOCUMENT_FRAGMENT_NODE, Node::DOCUMENT_NODE, Node::DOCUMENT_POSITION_CONTAINED_BY, Node::DOCUMENT_POSITION_CONTAINS, Node::DOCUMENT_POSITION_DISCONNECTED, Node::DOCUMENT_POSITION_FOLLOWING, Node::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, Node::DOCUMENT_POSITION_PRECEDING, Node::DOCUMENT_TYPE_NODE, Node::ELEMENT_NODE, Node::HTML_NAMESPACE, Node::PROCESSING_INSTRUCTION_NODE, Node::TEXT_NODE, Node::XMLNS_NAMESPACE, Node::XML_NAMESPACE

Instance Attribute Summary

Attributes inherited from Element

#document

Instance Method Summary collapse

Methods included from HyperlinkActivation

#activation_behavior, #activation_target?

Methods inherited from HTMLElement

#case_sensitive_attribute_names?, #disabled_by_ancestor_fieldset?, #labels_node_list, #parse_non_negative_reflected, #set_non_negative_reflected

Methods included from Internal::ReflectedAttributes

included

Methods inherited from Element

#[], #[]=, #__dommy_backend_node__, #__internal_approx_box, #__internal_case_sensitive_attribute_names__?, #__internal_created_namespace__, #__internal_normalize_attr_key__, #__internal_set_namespace__, #__internal_shadow_root__, #__js_attribute_snapshot__, #__js_call__, #__run_click_activation_behavior__, #__test_scroll_log__, #access_key_label, #accessibility_tree, #activation_behavior, #activation_target, #activation_target?, #after, #anchor_href, #animate, #approximate_layout?, #aria_content_attr, #aria_element_attr, #aria_element_get, #aria_element_set, #aria_elements_attr, #aria_elements_current, #aria_elements_get, #aria_elements_set, #aria_find_in_root, #aria_get, #aria_ref_in_valid_scope?, #aria_set, #aria_snapshot, #assigned_slot, #at_xpath, #attach_shadow, #attributes, #base_uri, #before, #blur, #child_element_count, #child_nodes, #children, #class_list, #class_name, #class_name=, #clear_aria_element_ref_for, #click, #clone_node, #closest, #computed_description, #computed_label, #computed_role, #contains?, #dataset, #element_prefix, #equal_node?, #first_child, #first_element_child, #focus, #get_animations, #get_attribute, #get_attribute_names, #get_attribute_node, #get_attribute_node_ns, #get_attribute_ns, #get_bounding_client_rect, #get_client_rects, #get_elements_by_class_name, #get_elements_by_tag_name, #get_elements_by_tag_name_ns, #get_html, #get_inner_html, #has_attribute?, #has_attribute_ns?, #has_attributes?, #has_child_nodes?, #hide_popover, #id, #id=, #initialize, #inner_html, #inner_html=, #insert_adjacent_element, #insert_adjacent_html, #insert_adjacent_text, #insert_before, #insertion_parent!, #is_connected?, #last_child, #last_element_child, #live_child_nodes, #local_name, #mark_fragment_scripts_started, #matches?, #namespace_uri, #next_element_sibling, #next_sibling, #on, #outer_html, #outer_html=, #owner_document, #parent_element, #parent_node, #path, #pre_click_activation_state, #previous_element_sibling, #previous_sibling, #query_selector, #query_selector_all, #reflected_attr_name, #reflected_token_list, #remove, #remove_attribute, #remove_attribute_node, #remove_attribute_ns, #remove_child, #replace_child, #replace_with_nodes, #request_fullscreen, #restore_pre_click_activation, #role, #role=, #root_node, #run_post_click_activation, #same_node?, #set_attribute, #set_attribute_node, #set_attribute_ns, #shadow_root, #show_popover, #slot, #slot=, #style, #tag_name, #text_content, #text_content=, #toggle_attribute, #toggle_popover, #translate_mode?, #validate_adjacent_document_insert!, #with_selector_errors, #xpath

Methods included from Bridge::Methods

included

Methods included from Internal::ParentNode

#append, #append_child, #normalize, #prepend, #replace_children

Methods included from Internal::ChildNode

#child_node_after, #child_node_before, #child_node_replace_with, #nullable_dom_string, #validate_insert_before_ref!

Methods included from Node

#compare_document_position, #get_root_node, #is_default_namespace, #is_equal_node, #is_same_node, #lookup_namespace_uri, #lookup_prefix

Methods included from EventTarget

#__dommy_dump_event_failure__, #__internal_deliver_event__, #__internal_event_parent__, #__internal_process_event_handler_return__, #add_event_listener, capture_flag, #deliver_at, #dispatch_event, #event_name_from_on, #invoke_listener_isolated, js_truthy?, #on_handler, #remove_event_listener, #set_on_handler

Constructor Details

This class inherits a constructor from Dommy::Element

Instance Method Details

#__js_get__(key) ⇒ Object



224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
# File 'lib/dommy/html_elements.rb', line 224

def __js_get__(key)
  case key
  when "hash"
    self.hash
  when "host"
    host
  when "hostname"
    hostname
  when "pathname"
    pathname
  when "protocol"
    protocol
  when "search"
    search
  when "port"
    port
  when "origin"
    origin
  when "text"
    text
  else
    super
  end
end

#__js_set__(key, value) ⇒ Object



249
250
251
252
253
254
255
256
# File 'lib/dommy/html_elements.rb', line 249

def __js_set__(key, value)
  case key
  when "text"
    self.text = value
  else
    super
  end
end

#hashObject

URL-decomposition helpers. The anchor's href is resolved to an absolute URL (inherited from Element#anchor_href); break it into the standard components on demand.



183
184
185
# File 'lib/dommy/html_elements.rb', line 183

def hash
  uri_part(:fragment) ? "##{uri_part(:fragment)}" : ""
end

#hostObject



187
188
189
# File 'lib/dommy/html_elements.rb', line 187

def host
  uri.host ? "#{uri.host}#{port_suffix}" : ""
end

#hostnameObject



191
192
193
# File 'lib/dommy/html_elements.rb', line 191

def hostname
  uri.host || ""
end

#originObject



211
212
213
# File 'lib/dommy/html_elements.rb', line 211

def origin
  uri.scheme && uri.host ? "#{uri.scheme}://#{uri.host}#{port_suffix}" : ""
end

#pathnameObject



195
196
197
# File 'lib/dommy/html_elements.rb', line 195

def pathname
  uri.path || "/"
end

#portObject



207
208
209
# File 'lib/dommy/html_elements.rb', line 207

def port
  uri.port ? uri.port.to_s : ""
end

#protocolObject



199
200
201
# File 'lib/dommy/html_elements.rb', line 199

def protocol
  uri.scheme ? "#{uri.scheme}:" : ""
end

#searchObject



203
204
205
# File 'lib/dommy/html_elements.rb', line 203

def search
  uri.query ? "?#{uri.query}" : ""
end

#textObject

a.text is an alias for the element's descendant text content.



216
217
218
# File 'lib/dommy/html_elements.rb', line 216

def text
  text_content
end

#text=(v) ⇒ Object



220
221
222
# File 'lib/dommy/html_elements.rb', line 220

def text=(v)
  self.text_content = v.to_s
end

#to_sObject

WebIDL stringifier: String(anchor) / anchor.toString() is its href (the resolved absolute URL), not the element's serialization.



177
178
179
# File 'lib/dommy/html_elements.rb', line 177

def to_s
  anchor_href
end