Javascript - 使用哈希获取url参数

时间:2014-12-10 16:56:04

标签: javascript

我尝试获取包含哈希的URL参数ReturnUrl

http://localhost/Site?ReturnUrl=%2fPlace#/get

我使用的代码 How can I get query string values in JavaScript?

但它只返回%2fPlace。为什么?

2 个答案:

答案 0 :(得分:2)

虽然location.search + location.hash将在技术上返回?ReturnUrl=%2fPlace#/get #/get不是ReturnUrl参数的一部分,但浏览器会将其解释为当前网址的片段。

要更准确地处理此问题,您应该将#的网址编码为%23,以便网址为http://localhost/Site?ReturnUrl=%2fPlace%23%2fget

答案 1 :(得分:1)

您的问题在

"=([^&#]*)" 

正则表达式标签。删除哈希标记,并添加" location.hash"你的正则表达式搜索,你应该被设置。

<script type="text/javascript">
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&]*)"),
        results = regex.exec(location.search + location.hash);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var ReturnUrl = getParameterByName('ReturnUrl');
document.write(ReturnUrl);
</script>