History.js用ie6 / ie7恢复状态

时间:2012-10-01 23:14:22

标签: 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 = {};
  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的非缩小版本,但我不理解交互的微妙之处。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

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