我在Chrome中,我复制了我的网址:“http://www.example.com/a/123456789”并将其粘贴到IE8中。它工作正常,因为我的路线设置正确。
如果我然后导航到其他地方,我会按预期获得IE8后备网址:“http://www.example.com/a#a/123456789”(请注意哈希),一切都很好。
这是问题......
现在,如果我使用散列(http://www.example.com/a#a/123456789)复制我的链接并将其粘贴到现代浏览器中,它会将我转储到http://www.example.com/a#a。
任何人都有此行为的经验吗?
答案 0 :(得分:0)
我为此提出了一些解决方法,所以我想我会分享它,因为它可以帮助其他人......
// Make urls copied from IE8 work when pasted in modern browsers
if (history.pushState && location.hash.match(/#a{1}/)) {
location.href = location.href.replace('a#a', 'a');
}
基本上,我只是检查浏览器是否支持推送状态,以及我们要查找的哈希是否在URL中。由于我们的哈希值与我们在pushState中使用的哈希值相同,因此只需快速替换即可。