2

我在 Chrome 中,我复制我的网址:“http://www.example.com/a/123456789”并将其粘贴到 IE8 中。它工作正常,因为我的路线设置正确。

如果我然后导航到其他地方,我会得到预期的 IE8 后备 URL:“http://www.example.com/a#a/123456789”(注意哈希),一切都很好。

这就是问题所在...

现在,如果我复制带有哈希的链接 (http://www.example.com/a#a/123456789) 并将其粘贴到现代浏览器中,它会将我转储到http://www.example.com/a#一个

有人有这种行为的经验吗?

4

1 回答 1

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 中使用的相同,因此只需快速替换即可。

于 2012-12-17T19:28:27.057 回答