Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery History.js正在使用ie6/ie7恢复状态_Jquery_Internet Explorer 7_Internet Explorer 6_History.js - Fatal编程技术网

Jquery History.js正在使用ie6/ie7恢复状态

Jquery History.js正在使用ie6/ie7恢复状态,jquery,internet-explorer-7,internet-explorer-6,history.js,Jquery,Internet Explorer 7,Internet Explorer 6,History.js,我已经在HTML5浏览器和IE8/9中成功地使用了History.js,但即使我使用的是html4+HTML5 jQuery版本,它在ie6/ie7中也不起作用 在下面的代码中,当我单击主页上的普通链接,然后单击“上一步”按钮返回主页时,我希望state.data能够恢复 主页包含以下代码,可通过提交表单调用这些代码: if (window.History && window.History.enabled) { var vars = {}; var tables = {

我已经在HTML5浏览器和IE8/9中成功地使用了History.js,但即使我使用的是html4+HTML5 jQuery版本,它在ie6/ie7中也不起作用

在下面的代码中,当我单击主页上的普通链接,然后单击“上一步”按钮返回主页时,我希望state.data能够恢复

主页包含以下代码,可通过提交表单调用这些代码:

if (window.History && window.History.enabled) {
  var vars = {};
  var tables = {};
  vars['something'] = 'value';
  History.replaceState({vars: vars, tables: tables}, null, window.location.href.match(/^([^#]*)/)[1]);
}
此页面有一个onload函数,如下所示:

var state = History.getState();
var data = state.data;

    if (data.vars) {
          alert('success!');
    }
在IE6/IE7下它不会显示成功,尽管它在我尝试过的任何其他浏览器上都可以正常工作

你是否发现明显遗漏了什么,或者对如何进行有想法?我试着调试history.html4.js和history.js的非精简版本,但我不理解交互的微妙之处


感谢您提供的帮助。

我相信您永远不会让History.js使用不支持
onHashChange
事件的浏览器,因为History.js使用
pushState
(仅在html5中)作为兼容浏览器,使用“#hash”作为支持此事件的html4浏览器。甚至ie9也使用哈希而不是pushState。但是,同样,ie6和ie7都不支持哈希事件。

这并不完全正确。对于不支持hash事件和pushState的浏览器,setInterval和iframe用于模拟hashchange事件和历史处理。