如何在Javascript(新浏览器版本)中获取url的哈希部分?

如何在Javascript(新浏览器版本)中获取url的哈希部分?,javascript,routes,Javascript,Routes,我想解析IE、Chrome等新版本中的IE8、IE9链接 假设我在Chrome中收到这样的链接: Chrome将此转换为: 自动并将我的步长设置为0(哈希部分之前的步长) 如果我像这样使用document.baseURI或smth,我将获得转换后的链接 我想解析未转换的链接,从中获取一些信息(设置当前步骤和类似的内容)。您可以使用以下方法获取哈希转发的所有内容: document.location.hash 如果要从散列中拆分出?,可以执行以下操作: document.location.ha

我想解析IE、Chrome等新版本中的IE8、IE9链接

假设我在Chrome中收到这样的链接:

Chrome将此转换为:

自动并将我的步长设置为0(哈希部分之前的步长)

如果我像这样使用document.baseURI或smth,我将获得转换后的链接


我想解析未转换的链接,从中获取一些信息(设置当前步骤和类似的内容)。

您可以使用以下方法获取哈希转发的所有内容:

document.location.hash
如果要从散列中拆分出
,可以执行以下操作:

document.location.hash.split('?')[1]

当然,一定要做一些错误检查。。。不要在不知道索引存在的情况下直接索引到拆分数组:)

为什么chrome会转换这样的URL?您应该能够只查看
window.location.hash
新浏览器以某种方式转换散列部分。此后,
窗口.location.hash
将为空。哪些浏览器转换该哈希?我不会看到这种情况发生。您确定客户端web应用程序框架没有为您这样做吗?或者您的服务器正在为您重新编写?我不认为这是一个浏览器问题。它来自历史API。我现在发现了问题。谢谢你的建议。我可以在IE8和IE9中做到这一点,我做到了,但较新版本的浏览器会转换散列部分,
window.location.hash
document.location.hash
等等在客户端将为空。我对此感到困惑。散列是一个客户端概念。为什么在较新的浏览器中为空?我已经在IE10、Firefox(21和23)以及最新版本的Chrome(29)中测试了这个功能,它可以正常工作。我发现了这个问题。来自历史API。在较新版本中,历史会推送状态,并删除散列部分。在IE8和IE9中,没有历史API,链接仍然使用哈希。抱歉搞混了。希望你学到了新东西,不要浪费时间。