LiveURLs is a novel approach, which uses URL fragment identifiers smartly, to enable HTTP clients to address content, independent of its original representation. LiveURLs was an idea conceptualized by InfyLUG as part of its research on internet and web technologies.

The LiveURLs extension allows users to create links to any portion of a web page. The extension allows users to exchange portions of webpages using links i.e. URLs. The user only needs to select the content that he wants to share and create a URL(link) for that content from the context menu (the menu that pops up on a right-click). This newly created URL/link when viewed with a browser, which has the LiveURL extension installed, will show the selected content with a highlight. The URLs created using this extension are called LiveURLs.

Benefits of using LiveURLs
The gory details

LiveURLs use the fragment identifier portion of the URL to denote the selected range. The fragment identifier of a LiveURL is dynamically created based on the selection. Two types of LiveURLs are currently supported. They differ based on how they specify the location of the content that was selected.

Content based LiveURLs
The fragment ID of a content based LiveURL consists of the following parameters
  1. Length of the starting word of the selection (upto a maximum of 5 characters)
  2. Starting word
  3. Character length of the selection
  4. CRC Checksum of the selection
(we refer to the above as parameters 1, 2, 3, 4 in the following discussion)




On the browser that creates LiveURLs, the above parameters are calculated from the selected range. Only text type HTML nodes in the selected range are used for this purpose. These parameters are added to the URL and the URL is copied to the clipboard.

On the browser that processes the LiveURLs, a string is constructed out of all the text nodes of the document and the starting word (parameter 2) is searched for in this string. Once the starting word is located, a substring equal to the length of the selection (parameter 3) made by the sender is created and its checksum is validated against the checksum passed as part of the URL (parameter 4). If there is a match, then the corresponding section is highlighted.

The content based approach is best suited when text based content is to be shared. We are working at enhancing it to include non-text nodes too by associating unique text content with non-text based nodes.


Position based LiveURLs

The fragment ID of a position based LiveURL consists of the following components.

  1. Parent Node's ID or Parent Node's Index in the DOM tree
  2. A child node offset, which indicates which child (i.e. the number of the child) of the parent, the selected node is
  3. The offset of exact end-point of selection within the child node

The position based implementation uses the Ahoy project's methodology to identify positions in a DOM tree uniquely. The Ahoy project's web page has a very detailed description of this method. LiveURLs differs from the Ahoy project in the placement of this information. In the Ahoy implementation, this information is a part of the "query string" portion of the URL, whereas in the case of LiveURLs it is a part of the fragment identifier.

This method is preferable for content that occupies a particular position on a web page.


What needs to be done

So, thats it folks. Thanks for reading.

The liveurls project can be contacted through the mailing list or the member list.
Copyright © 2000-2020. All rights reserved. Terms of Use & Privacy Policy.