Jquery History.js正在使用ie6/ie7恢复状态
我已经在HTML5浏览器和IE8/9中成功地使用了History.js,但即使我使用的是html4+HTML5 jQuery版本,它在ie6/ie7中也不起作用 在下面的代码中,当我单击主页上的普通链接,然后单击“上一步”按钮返回主页时,我希望state.data能够恢复 主页包含以下代码,可通过提交表单调用这些代码: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 = {
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事件和历史处理。