/jquery-address

jQuery Address - Deep linking for the masses

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

jQuery Address

The jQuery Address plugin provides powerful deep linking capabilities and allows the creation of unique virtual addresses that can point to a website section or an application state. It enables a number of important capabilities including:

  • Bookmarking in a browser or social website
  • Sending links via email or instant messenger
  • Finding specific content using the major search engines
  • Utilizing browser history and reload buttons

Usage

A basic implementation in pure JavaScript can look like this:

$.address.change(function(event) {  
    // do something depending on the event.value property, e.g.  
    // $('#content').load(event.value + '.xml');  
});  
$('a').click(function() {  
    $.address.value($(this).attr('href'));  
});  

The plugin also provides a jQuery function which can be directly used in the following way:

$('a').address();  

The above snippet can be extended with an additional function that processes the link value:

$('a').address(function() {  
    return $(this).attr('href').replace(/^#/, '');  
});  

By default the plugin automatically adds the appropriate JavaScript event handler to every link that has a rel attribute in the following format:

<a href="/deep-link" rel="address:/deep-link">Deep link</a> 

Changes

01/22/2013 - jQuery Address 1.6

  • Support for jQuery 1.9.
  • Removes the crawlable feature.

11/18/2012 - jQuery Address 1.5

  • Introduces feature detection where possible.
  • Improves event handling.
  • Fixes various issues.
  • Adds a new subtabs sample.

05/04/2011 - jQuery Address 1.4

  • Support for jQuery 1.6.
  • Drops the internal de/encoding magic.
  • Drops the Safari 2 support.
  • Fixes various issues.
  • Updates the Express sample.

02/04/2011 - jQuery Address 1.3.2

  • Support for jQuery 1.5.
  • Issue 48: IE7 "Permission Denied" error.
  • Issue 47: Issues for non-Latin urls and State update to change title on click event.
  • Issue 40: Encoding problem in parameter().
  • Issue 38: Issue when form actions containing query variables.
  • Issue 37: Using live events for form submissions.

11/29/2010 - jQuery Address 1.3.1

  • Issue 26: Values should no longer be only strings.
  • Issue 20: Improves the encoding of special characters.
  • Fixed issue with state value detection.
  • Fixed issue with the global ajaxComplete event.

09/26/2010 - jQuery Address 1.3

  • Support for the HTML5 onpopstate/pushState/replaceState API.
  • Support for tracker function reference.
  • Support for document.domain in IE6/7.
  • Improved value encoding scheme.
  • New State and Express samples.
  • Improved jQuery UI Tabs sample.
  • Improved event cancellation.
  • GA tracker function lookup is performed only against the top window.
  • Fixes an issue with manual address changes in IE7.
  • Removes IE specific code applicable only for local testing.

07/19/2010 - jQuery Address 1.2.2

  • Issue 12: Fixes the opening of tab links in a new browser tab.
  • Issue 11: Fixes the rel attr handling for Ajax loaded links.
  • Issue 10: Cannot turn off Google Analytics page tracking.
  • Fixed lazy loading support.
  • Fixed form submission support in IE.
  • Fixed issue with the href attribute in older versions of IE.
  • Tabs sample improvements.

05/18/2010 - jQuery Address 1.2.1

  • Issue 6: Using links without a href attribute causes an error.
  • Issue 5: Setting parameter = 0 removes it from address.

05/05/2010 - jQuery Address 1.2

  • New queryString, parameter and path setters.
  • New autoUpdate, crawling and wrap options.
  • New generic bind method.
  • New Accordion, Crawling and Form samples.
  • Support for hash fragments as a part of the value.
  • Basic support for forms.
  • Improved onhashchange support.
  • Switched samples to HTML5.
  • Switched to the Closure compiler.
  • JSLint compatibility.
  • Simple test suite.
  • Support for jQuery 1.4.2 and jQuery UI 1.8.

12/23/2009 - jQuery Address 1.1

  • New internalChange and externalChange events.
  • New Events sample.
  • Improved IE support.
  • Frameset support.

04/28/2009 - jQuery Address 1.0

Initial release.