diff --git a/README.markdown b/README.markdown index 04f4d2e..148c062 100644 --- a/README.markdown +++ b/README.markdown @@ -1,7 +1,7 @@ # jQuery hashchange event # [http://benalman.com/projects/jquery-hashchange-plugin/](http://benalman.com/projects/jquery-hashchange-plugin/) -Version: 1.2, Last updated: 2/11/2010 +Version: 1.3pre, Last updated: 7/5/2010 This jQuery plugin enables very basic bookmarkable #hash history via a cross-browser window.onhashchange event. @@ -27,7 +27,7 @@ reside (so you can test it yourself). 1.2.6, 1.3.2, 1.4.1, 1.4.2 ### Browsers Tested ### -Internet Explorer 6-8, Firefox 2-3.7, Safari 3-4, Chrome, Opera 9.6-10.1. +Internet Explorer 6-8, Firefox 2-3.7, Safari 3-5, Chrome 3-5, Opera 9.6-10.5. ### Unit Tests ### [http://benalman.com/code/projects/jquery-hashchange/unit/](http://benalman.com/code/projects/jquery-hashchange/unit/) @@ -57,6 +57,7 @@ Safari: Back Button from a different domain ## Release History ## +1.3pre - (7/5/2010) Reorganized IE6/7 Iframe code to make it more removable (for mobile dev) and added support for document.domain in IE6/7 via jQuery.hashchangeDomain and jQuery.hashchangeIframeSrc properties. Note that when using jQuery.hashchangeIframeSrc, history won't be recorded in IE6/7 until the Iframe src file loads. Lowered the default jQuery.hashchangeDelay to 50 milliseconds. 1.2 - (2/11/2010) Fixed a bug where coming back to a page using this plugin from a page on another domain would cause an error in Safari 4. Also, IE6/7 Iframe is now inserted after the body (this actually works), which prevents the page from scrolling when the event is first bound. Event can also now be bound before DOM ready, but it won't be usable before then in IE6/7. 1.1 - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug where browser version is incorrectly reported as 8.0, despite inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag. 1.0 - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special window.onhashchange functionality into a separate plugin for users who want just the basic event & back button support, without all the extra awesomeness that BBQ provides. This plugin will be included as part of jQuery BBQ, but also be available separately. diff --git a/docs/files/jquery-ba-hashchange-js.html b/docs/files/jquery-ba-hashchange-js.html index d49bc23..d572cfa 100644 --- a/docs/files/jquery-ba-hashchange-js.html +++ b/docs/files/jquery-ba-hashchange-js.html @@ -11,28 +11,32 @@ -
Version: 1.2, Last updated: 2/11/2010
| jQuery hashchange event | Version: 1.2, Last updated: 2/11/2010 |
| License | Copyright © 2010 “Cowboy” Ben Alman, Dual licensed under the MIT and GPL licenses. |
| Examples | This working example, complete with fully commented code, illustrate one way in which this plugin can be used. |
| Support and Testing | Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself). |
| Known issues | While this jQuery hashchange event implementation is quite stable and robust, there are a few unfortunate browser bugs surrounding expected hashchange event-based behaviors, independent of any JavaScript window.onhashchange abstraction. |
| Release History | |
| Properties | |
| jQuery. | The numeric interval (in milliseconds) at which the hashchange event polling loop executes. |
| Events | |
| hashchange event | Fired when location.hash changes. |
Version: 1.3pre, Last updated: 7/5/2010
| jQuery hashchange event | Version: 1.3pre, Last updated: 7/5/2010 |
| License | Copyright © 2010 “Cowboy” Ben Alman, Dual licensed under the MIT and GPL licenses. |
| Examples | These working examples, complete with fully commented code, illustrate a few ways in which this plugin can be used. |
| Support and Testing | Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself). |
| Known issues | While this jQuery hashchange event implementation is quite stable and robust, there are a few unfortunate browser bugs surrounding expected hashchange event-based behaviors, independent of any JavaScript window.onhashchange abstraction. |
| Release History | |
| Properties | |
| jQuery. | The numeric interval (in milliseconds) at which the hashchange event polling loop executes. |
| jQuery. | If you’re setting document.domain in your JavaScript, and you want hash history to work in IE6/7, not only must this property be set, but you must also set document.domain BEFORE jQuery is loaded into the page. |
| jQuery. | If, for some reason, you need to specify an Iframe src file (for example, when setting document.domain as in jQuery.hashchangeDomain), you can do so using this property. |
| Events | |
| hashchange event | Fired when location.hash changes. |
Copyright © 2010 “Cowboy” Ben Alman, Dual licensed under the MIT and GPL licenses. http://benalman.com/about/license/
This working example, complete with fully commented code, illustrate one way in which this plugin can be used.
| hashchange event | http://benalman.com |
These working examples, complete with fully commented code, illustrate a few ways in which this plugin can be used.
| hashchange event | http://benalman.com |
| document.domain | http://benalman.com |
Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself).
| jQuery Versions | 1.2.6, 1.3.2, 1.4.1, 1.4.2 |
| Browsers Tested | Internet Explorer 6-8, Firefox 2-3.7, Safari 3-4, Chrome, Opera 9.6-10.1. |
| Unit Tests | http://benalman.com |
Information about what version or versions of jQuery this plugin has been tested with, what browsers it has been tested in, and where the unit tests reside (so you can test it yourself).
| jQuery Versions | 1.2.6, 1.3.2, 1.4.1, 1.4.2 |
| Browsers Tested | Internet Explorer 6-8, Firefox 2-3.7, Safari 3-5, Chrome 3-5, Opera 9.6-10.5. |
| Unit Tests | http://benalman.com |
While this jQuery hashchange event implementation is quite stable and robust, there are a few unfortunate browser bugs surrounding expected hashchange event-based behaviors, independent of any JavaScript window.onhashchange abstraction. See the following examples for more information:
| Chrome: Back Button | http://benalman.com |
| Firefox: Remote XMLHttpRequest | http://benalman.com |
| WebKit: Back Button in an Iframe | http://benalman.com |
| Safari: Back Button from a different domain | http://benalman.com |
| 1.2 | (2/11/2010) Fixed a bug where coming back to a page using this plugin from a page on another domain would cause an error in Safari 4. Also, IE6/7 Iframe is now inserted after the body (this actually works), which prevents the page from scrolling when the event is first bound. Event can also now be bound before DOM ready, but it won’t be usable before then in IE6/7. |
| 1.1 | (1/21/2010) Incorporated document.documentMode test to fix IE8 bug where browser version is incorrectly reported as 8.0, despite inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag. |
| 1.0 | (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special window.onhashchange functionality into a separate plugin for users who want just the basic event & back button support, without all the extra awesomeness that BBQ provides. This plugin will be included as part of jQuery BBQ, but also be available separately. |
| 1.3pre | (7/5/2010) Reorganized IE6/7 Iframe code to make it more “removable” for mobile development. Added jQuery.hashchangeDomain, jQuery.hashchangeIframeSrc properties and document-domain.html file to address access denied issues when setting document.domain in IE6/7. Note that when using jQuery.hashchangeIframeSrc, history won’t be recorded in IE6/7 until the Iframe src file loads. Lowered the default jQuery.hashchangeDelay to 50 milliseconds. |
| 1.2 | (2/11/2010) Fixed a bug where coming back to a page using this plugin from a page on another domain would cause an error in Safari 4. Also, IE6/7 Iframe is now inserted after the body (this actually works), which prevents the page from scrolling when the event is first bound. Event can also now be bound before DOM ready, but it won’t be usable before then in IE6/7. |
| 1.1 | (1/21/2010) Incorporated document.documentMode test to fix IE8 bug where browser version is incorrectly reported as 8.0, despite inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag. |
| 1.0 | (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special window.onhashchange functionality into a separate plugin for users who want just the basic event & back button support, without all the extra awesomeness that BBQ provides. This plugin will be included as part of jQuery BBQ, but also be available separately. |
The numeric interval (in milliseconds) at which the hashchange event polling loop executes. Defaults to 100.
The numeric interval (in milliseconds) at which the hashchange event polling loop executes. Defaults to 50.
If you’re setting document.domain in your JavaScript, and you want hash history to work in IE6/7, not only must this property be set, but you must also set document.domain BEFORE jQuery is loaded into the page.
In addition, the jQuery.hashchangeIframeSrc property must be set to the path of the included “document-domain.html” file, which can be renamed or modified if necessary (note that the document.domain specified must be the same in both your main JavaScript as well as in this file).
$.hashchangeDomain = document.domain;
If, for some reason, you need to specify an Iframe src file (for example, when setting document.domain as in jQuery.hashchangeDomain), you can do so using this property.
$.hashchangeIframeSrc = ‘path/to/file.html’;
Fired when location.hash changes. In browsers that support it, the native window.onhashchange event is used (IE8, FF3.6), otherwise a polling loop is initialized, running every jQuery.hashchangeDelay milliseconds to see if the hash has changed. In IE 6 and 7, a hidden Iframe is created to allow the back button and hash-based history to work.
$(window).bind( 'hashchange', function(e) {
+hashchange event
Fired when location.hash changes. In browsers that support it, the native HTML5 window.onhashchange event is used (IE8, FF3.6), otherwise a polling loop is initialized, running every jQuery.hashchangeDelay milliseconds to see if the hash has changed. In IE 6 and 7, a hidden Iframe is created to allow the back button and hash-based history to work.
Usage
$(window).bind( 'hashchange', function(e) {
var hash = location.hash;
...
-});
Additional Notes
- The polling loop and Iframe are not created until at least one callback is actually bound to ‘hashchange’.
- If you need the bound callback(s) to execute immediately, in cases where the page ‘state’ exists on page load (via bookmark or page refresh, for example) use $(window).trigger( ‘hashchange’ );
- The event can be bound before DOM ready, but since it won’t be usable before then in IE6/7 (due to the necessary Iframe), recommended usage is to bind it inside a $(document).ready() callback.
+});| J | |
| jQuery hashchange event |
| E | |
| Events | |
| Examples | |
| H | |
| hashchange event | |
| hashchangeDelay, jQuery | |
| J | |
| jQuery hashchange event | |
| K | |
| Known issues | |
| L | |
| License | |
| P | |
| Properties | |
| R | |
| Release History | |
| S | |
| Support and Testing |
| E | |
| Events | |
| Examples | |
| H | |
| hashchange event | |
| hashchangeDelay, jQuery | |
| hashchangeDomain, jQuery | |
| hashchangeIframeSrc, jQuery | |
| J | |
| jQuery hashchange event | |
| K | |
| Known issues | |
| L | |
| License | |
| P | |
| Properties | |
| R | |
| Release History | |
| S | |
| Support and Testing |
| H | |
| hashchangeDelay, jQuery |
| H | |
| hashchangeDelay, jQuery | |
| hashchangeDomain, jQuery | |
| hashchangeIframeSrc, jQuery |