Почему я не получаю полные параметры URL с помощью jQuery? - PullRequest
1 голос
/ 26 февраля 2012

Я использую следующую функцию вырезания / вставки для получения параметров 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;
}

Он отлично работает, но когда я получаю URL-адрес вроде:

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 Ответ

1 голос
/ 26 февраля 2012

Как я уже сказал, в общем случае вы не можете «угадать», особенно когда параметры (по RFC) относятся к исходному URL, а не к URL внутри одного из этих параметров, но в приложении к вашему примеру вы можете использовать

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));​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...