为什么我没有使用jQuery获取完整的URL参数?

时间:2012-02-26 06:52:08

标签: javascript jquery javascript-events

我使用以下剪切/粘贴功能来获取URL参数。

function getUrlVars() 
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    var i = 0;
    for(i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}

它工作得很好,但是当我得到一个像:

这样的网址时
http://someurl.com/login.html?redirecturl=http://someurl.com/game_detail.html?id=3&reminderid=5

我做了类似的事情:

loginVars = getUrlVars();
alert("redirecting to: "+loginVars['redirecturl']);

我只得到:

redirecting to: http://someurl.com/game_detail.html?id

但我想要的是整体:http://someurl.com/game_detail.html?id=3&reminderid=5

1 个答案:

答案 0 :(得分:1)

正如我所说,一般情况下你不能猜测,特别是当参数(通过RFC)属于原始网址,而不是其中一个参数中的网址,而是应用于你的例如,您可以使用

var str = 'http://someurl.com/login.html?redirecturl='+                 
          'http://someurl.com/game_detail.html?id=3&reminderid=5', 
    separator = 'redirecturl=';

alert(str.substring(str.indexOf(separator)+separator.length));​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​