From 873fe0179e2a1230b5fc2c60fe3fc15181195e96 Mon Sep 17 00:00:00 2001
From: Ben Alman
Date: Mon, 24 May 2010 11:49:56 +0000
Subject: [PATCH 1/3] 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
---
docs/files/jquery-ba-hashchange-js.html | 18 ++-
docs/index/Files.html | 2 +-
docs/index/General.html | 14 +-
docs/index/Properties.html | 4 +-
docs/nd/Data/ConfigFileInfo.nd | Bin 26 -> 26 bytes
docs/nd/Data/FileInfo.nd | 4 +-
docs/nd/Data/PreviousMenuState.nd | Bin 174 -> 181 bytes
docs/nd/Data/PreviousSettings.nd | Bin 94 -> 108 bytes
docs/nd/Data/SymbolTable.nd | Bin 1956 -> 2949 bytes
docs/search/GeneralH.html | 2 +-
docs/search/PropertiesH.html | 2 +-
document-domain.html | 4 +
examples/document_domain/index.php | 169 ++++++++++++++++++++
examples/index.php | 3 +
jquery.ba-hashchange.js | 201 +++++++++++++++---------
jquery.ba-hashchange.min.js | 4 +-
unit/document-domain.html | 38 +++++
unit/ie7-compat.html | 12 +-
unit/index.html | 10 +-
unit/jquery-1.2.6.html | 10 +-
unit/jquery-1.3.2.html | 10 +-
unit/jquery-1.4.1.html | 10 +-
unit/unit.js | 8 +-
23 files changed, 406 insertions(+), 119 deletions(-)
create mode 100644 document-domain.html
create mode 100644 examples/document_domain/index.php
create mode 100644 unit/document-domain.html
diff --git a/docs/files/jquery-ba-hashchange-js.html b/docs/files/jquery-ba-hashchange-js.html
index d49bc23..da70a75 100644
--- a/docs/files/jquery-ba-hashchange-js.html
+++ b/docs/files/jquery-ba-hashchange-js.html
@@ -11,25 +11,29 @@
-jQuery hashchange event
Version: 1.2, Last updated: 2/11/2010
Summary
| 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.hashchangeDelay | The numeric interval (in milliseconds) at which the hashchange event polling loop executes. |
| Events | |
| hashchange event | Fired when location.hash changes. |
+
jQuery hashchange event
Version: 1.3pre, Last updated: 5/23/2010
Summary
| jQuery hashchange event | Version: 1.3pre, Last updated: 5/23/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.hashchangeDelay | The numeric interval (in milliseconds) at which the hashchange event polling loop executes. |
| jQuery.hashchangeDomain | 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.hashchangeIframeSrc | 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. |
-
Examples
This working example, complete with fully commented code, illustrate one way in which this plugin can be used.
+
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).
+
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. See the following examples for more information:
-
Release History
| 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. |
+
Release History
| 1.3pre | (5/23/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. |
| 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. |
-
jQuery.hashchangeDelay
The numeric interval (in milliseconds) at which the hashchange event polling loop executes. Defaults to 100.
+
jQuery.hashchangeDelay
The numeric interval (in milliseconds) at which the hashchange event polling loop executes. Defaults to 100.
+
+
jQuery.hashchangeDomain
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).
Usage
$.hashchangeDomain = document.domain;
+
+
jQuery.hashchangeIframeSrc
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.
Usage
$.hashchangeIframeSrc = ‘path/to/file.html’;
-
hashchange event
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.
Usage
$(window).bind( 'hashchange', function(e) {
+hashchange event
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.
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.
@@ -47,7 +51,7 @@
-
+
diff --git a/docs/index/Files.html b/docs/index/Files.html
index d182037..4d14ca0 100644
--- a/docs/index/Files.html
+++ b/docs/index/Files.html
@@ -13,7 +13,7 @@
File Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I ·
J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
-
+
diff --git a/docs/index/General.html b/docs/index/General.html
index 81a8978..bb45560 100644
--- a/docs/index/General.html
+++ b/docs/index/General.html
@@ -11,25 +11,25 @@
-Index
$#! · 0-9 · A · B · C · D ·
E · F · G ·
H · I ·
J ·
K ·
L · M · N · O ·
P · Q ·
R ·
S · T · U · V · W · X · Y · Z
+
Index
$#! · 0-9 · A · B · C · D ·
E · F · G ·
H · I ·
J ·
K ·
L · M · N · O ·
P · Q ·
R ·
S · T · U · V · W · X · Y · Z
-
+
-
+
-
+
-
+
-
+
@@ -41,7 +41,7 @@
-
+
diff --git a/docs/index/Properties.html b/docs/index/Properties.html
index 6ebfeea..f10f351 100644
--- a/docs/index/Properties.html
+++ b/docs/index/Properties.html
@@ -11,9 +11,9 @@
-
Property Index
$#! · 0-9 · A · B · C · D · E · F · G ·
H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
+
Property Index
$#! · 0-9 · A · B · C · D · E · F · G ·
H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
-
+
diff --git a/docs/nd/Data/ConfigFileInfo.nd b/docs/nd/Data/ConfigFileInfo.nd
index c4b4764b7b98875364c1045e59c65cd6caa142a6..1e653578221ea472a08b5ca7e9cbbf5174ca006d 100644
GIT binary patch
literal 26
TcmZQ$)L>v>@c#bd8#)F6qrwl+
literal 26
XcmZQ$)L>v>@b
=YEh+bMq+VBaz
=YEh+bMq+VBaz<7Z>kU|?Wi0b&LQMh5wb{PJuJjE0O1DnJ&ueoB6FF$0T7h_4R-W@!c_
diff --git a/docs/nd/Data/SymbolTable.nd b/docs/nd/Data/SymbolTable.nd
index d64cf9112411bc09acecf596f887ccbe74f4b8e2..315ea03d82fc5af3fc5392793ce8f74d6e8f027a 100644
GIT binary patch
literal 2949
zcmb_e+iu%N5T)D334#JCkcYkw^x)cnEaieWKXLseGB0%FOsMw{xY<`e2l*t+UakPwvjxu+td=`-_r2)6%+k+RTX8mkcSh
za$CTW4kZ<_s#fxD&L(h<{kRt19~76uwea@RF8l<18`m-Do6YR=~_>!H4TfTm^_RsinvX)&b2I`VeT
z$=96eVnxWXO@h43sL&PDzWn1FlOd{NL!Ltrq;i`@0b|r+O{yvUxYFhw1?6TOUJTkQ
zM_rMpO<%6vRWAm6RXDmO%HAv-4NeZ)S_Ix4rC1;=*|pHGQ5fwcU$;T1
zONDrW?0W$F3qcA@8Xu=8zq9k&n&qZA
zPV(R_SLg@RkJ<+dI`qnHM7w*YGd7<44gBXTTd&ZeGSGf@KvECwT}2y?UfE@8SM4*s
z1X;eX<_c^(jjE!m%_XO3a(3tt(=XEtur8+`-kfcY{fKswhv%`btqaZJ1$!Y}zcu_l
zHK6uf1$2v4YGVMqRiH)NKmzU8kDhEnYxZml8cc$qQDZ=U5R%x0NCZJrXO|v<37x64&&3FGi!2xK&W`*cTCp}pi8io+eY~}-(Q#fhv%)aMJK1DvEdxj_
zwq+@1$yL-CH9n{m|0^tVHpKuM3Xi}hB|ps^io)&?jZCIB8!3%5Pd+--XL3Q2-^2KY
zx*wu_n8K8D(6&?yZJo!UgJf&QFB3!#%B<)owNU4o(>1z}W4jz#vlU3CG8i+_mo(`9
zo7RhUFFPG2T-R13+>A^6z)$q@>5D|U@jBgu(P=?5K3z}BzqUEImbdn-rDG;-l
z$tzojtP9i0cjIS6G8X6>>=|=3wdKZUkjw6XYlrA!;|1*}s)AGC^^IZta`O7ux08)+
zfjN~`Ia&%8+s1TiHDip$Ezo+Khj-e+nk0kQ+KDmB)==53VR5qyP`jl;xyh&ccfX^U
gsPTU;eceqTUAp?c>|@CGdqY>wjVaLYMPh}?f0q&nv;Y7A
delta 331
zcmZn_U&22@gwcGm0h|0}11^cly39PHc_A5@#R}#5McJ8o=?bY8iMa(isT0c#+4J*K
z70MGUCvH@dV`LD|3M@@6s#M5GEY3*INX$!5RY)yM%`0JGWI!0VfQeH@$0o@xEVZaO
zGe6Ht!BEdgN5LntxJ03}ASJORHN{H7NZ-(K@&zV26jw;0@OUOqVy;9J31hi|B$CT|
z2#J@+CX2)a`f2htwtq+>d2GC*0(c$1fm3htRxV|@9;M0BtbzhuUWsLi!O2CL1tkn9
J{%qi81prSkTmJw6
diff --git a/docs/search/GeneralH.html b/docs/search/GeneralH.html
index 4d3c14a..b7a2712 100644
--- a/docs/search/GeneralH.html
+++ b/docs/search/GeneralH.html
@@ -11,7 +11,7 @@
-Loading...
Searching...
No Matches