我一直在使用我的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的非缩小版本,但我不理解交互的微妙之处。
感谢您提供的任何帮助。
答案 0 :(得分:0)
我相信你永远不会让History.js使用不支持onHashChange
事件的浏览器,因为History.js使用pushState
(仅在html5中)用于兼容性浏览器,和支持此事件的html4浏览器的“#hash”。甚至ie9使用hash而不是pushState。但是,同样,ie6和ie7都不支持哈希事件。