我使用History.js来推送网址,但在IE中它附加了网页名称。
如果我原来的网址是: http://www.mydomain.com/Home.aspx
然后执行以下命令:
var url = window.location.protocol +'//'+ window.location.host +'/ Home.aspx?id = 2& pl = 4'; History.pushState(null,null,url)
在Chrome中,我的网址变为:http://www.mydomain.com/Home.aspx?id=2&pl=4
在IE 8中,我的网址变为:http://www.mydomain.com/Home.aspx#Home.aspx?id=2&pl=4
如果我将IE 8 url粘贴到chrom中我的代码失败了......
首先,正确的html 4网址应该是什么样的,其次,我该如何解决?
答案 0 :(得分:0)
我相信你没有正确地推动一个州,尝试重新格式化你推动的网址,例如History.pushState({data: 'home'}, null, '/Home/').
或许您认为推送状态也会向您发送一个请求,就像您在那里查询一样?它没有好友。
因此,不要指望通过粘贴你推入其他浏览器的状态来工作。首先,因为其他浏览器没有关于您网站的历史记录,其次您需要使用历史记录捕获statechange事件。
e.g。
History.Adapter.bind(window, 'statechange',
function() {
if (History.getState().data.page === 'home') {
//do what u would like with current state
}
);