@@ -1015,6 +1015,7 @@ if ($.support.pjax) {
1015
1015
asyncTest ( "handles going back to pjaxed state after reloading a fragment navigation" , function ( ) {
1016
1016
var iframe = this . iframe
1017
1017
var frame = this . frame
1018
+ var supportsHistoryState = 'state' in window . history
1018
1019
1019
1020
// Get some pjax state in the history.
1020
1021
frame . $ . pjax ( {
@@ -1023,28 +1024,33 @@ if ($.support.pjax) {
1023
1024
} )
1024
1025
frame . $ ( "#main" ) . on ( "pjax:complete" , function ( ) {
1025
1026
var state = frame . history . state
1026
- ok ( frame . history . state )
1027
1027
ok ( frame . $ . pjax . state )
1028
+ if ( supportsHistoryState )
1029
+ ok ( frame . history . state )
1028
1030
1029
1031
// Navigate to a fragment, which will result in a new history entry with
1030
1032
// no state object. $.pjax.state remains unchanged however.
1031
1033
iframe . src = frame . location . href + '#foo'
1032
- ok ( ! frame . history . state )
1033
1034
ok ( frame . $ . pjax . state )
1035
+ if ( supportsHistoryState )
1036
+ ok ( ! frame . history . state )
1034
1037
1035
1038
// Reload the frame. This will clear out $.pjax.state.
1036
1039
frame . location . reload ( )
1037
1040
$ ( iframe ) . one ( "load" , function ( ) {
1038
- ok ( ! frame . history . state )
1039
1041
ok ( ! frame . $ . pjax . state )
1042
+ if ( supportsHistoryState )
1043
+ ok ( ! frame . history . state )
1040
1044
1041
1045
// Go back to #main. We'll get a popstate event with a pjax state
1042
1046
// object attached from the initial pjax navigation, even though
1043
1047
// $.pjax.state is null.
1044
1048
window . iframeLoad = function ( ) {
1045
- ok ( frame . history . state )
1046
1049
ok ( frame . $ . pjax . state )
1047
- equal ( frame . $ . pjax . state . id , state . id )
1050
+ if ( supportsHistoryState ) {
1051
+ ok ( frame . history . state )
1052
+ equal ( frame . $ . pjax . state . id , state . id )
1053
+ }
1048
1054
start ( )
1049
1055
}
1050
1056
frame . history . back ( )
0 commit comments