Hyperanchor generating flow

In this page, describing about hyperanchor generating flow.


Hyperanchor generating flow in this page is on the presumption that a user executed below steps with selecting any string in a web page.

Internet Explorer

Select "Bookmark here (HYPER-ANCHOR)", "Bookmark selection (HYPER-ANCHOR)", "Copy to clipboard here (HYPER-ANCHOR)" or "Copy to clipboard selection (HYPER-ANCHOR)" from right click context menu.
Click "" or "" on the HYPER-ANCHOR toolbar ().


Select "Bookmark here (HYPER-ANCHOR)" or "Copy to clipboard here (HYPER-ANCHOR)" from right click context menu.
Click "" on the HYPER-ANCHOR toolbar ().

Hyperanchor generating flow

A hyperanchor is generated along with below steps.

# flow
1 Retrieve head node information of current selection. e.g. offset, node type, node content.
* In case that no character is selected, HYPER-ANCHOR does not retrieve offset and retrieve the attribute name and attribute value as node content.
2 If the node has "id" or "name" attribute, HYPER-ANCHOR check whether the attribute value is unique in the web page.
3 In case of that the attribute value is unique, set the head of anchor path // + tag name + [@ + id or name + = " + value + "].
e.g.) //DIV[@id=""]
4 In case of that the attribute value is not unique, scan previous siblings node that has "id" or "name" attribute and search for unique attribute value.
5 In case of that unique attribute value is found, add "/following-sibling::" to the hyperanchor path and proceed to #9.
e.g.) //DIV[@id=""]/following-sibling::
6 In case of that unique attribute value is not found, repeat #4 to #5 until previous siblings node does not exist and count up the number of the same name tag as the destination node.
7 Add "/ tag name [ count of same name tag + ]" to the head of hyperanchor path.
8 Repeat #2 to #7 for parent node until "id" or "name" attribute with unique value is found or "HTML" tag is found.
9 Add offset and node type retrieve in #1 to the hyperanchor path ( offset )( node type + )( content )
e.g. /TABLE[3]/TBODY[1]/TR[1]/TD[1](0)(3)(%e3%83%aa%e3%83%b3%e3%82%af)
10 Process the tail node of current selection in the same manner (#1 to #9).
11 In case of adopt specific style, create css style strings.
e.g.) padding-left:16px;background:transparent%20scroll%20no-repeat%20top%20left%20url(http:/
12 Add hyperanchor version (e.g. #hyperanchor1.2:) to the URL of the web page, and combine head node hyperanchor path, tail node hyperanchor path and hyperanchor style with "&" after the hyperanchor version.