Расширение window.location для хранения переменных GET - PullRequest
2 голосов
/ 05 марта 2010

В настоящее время у меня есть функция, которая захватывает окна браузера, анализирует переменные и присваивает их переменной. Это здорово, но я бы хотел расширить window.location для их хранения. Вот код, который у меня есть, но он не работает. Может кто-нибудь объяснить, почему или как это сделать?

window.location.prototype.parameters = function()
{
    var query_string = {}; 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 

    for (var i=0;i<vars.length;i++)
    {
        var pair = vars[i].split("="); 

        if (typeof query_string[pair[0]] === "undefined")
        {
            query_string[pair[0]] = pair[1]; 
        }
        else if (typeof query_string[pair[0]] === "string")
        {
            var arr = [ query_string[pair[0]], pair[1] ]; 
            query_string[pair[0]] = arr; 
        }
        else
        { 
            query_string[pair[0]].push(pair[1]); 
        }
    }

    return query_string;

}();

1 Ответ

2 голосов
/ 05 марта 2010

Нет необходимости использовать прототип. Есть только одно окно. Следующий код работает для меня. Просто избавься от прототипа.

window.location.parameters = function(){
var query_string = {}; 
var query = window.location.search.substring(1); 
var vars = query.split("&"); 

for (var i=0;i<vars.length;i++)   {
    var pair = vars[i].split("="); 

    if (typeof query_string[pair[0]] === "undefined")
    {
        query_string[pair[0]] = pair[1]; 
    }
    else if (typeof query_string[pair[0]] === "string")
    {
        var arr = [ query_string[pair[0]], pair[1] ]; 
        query_string[pair[0]] = arr; 
    }
    else
    { 
        query_string[pair[0]].push(pair[1]); 
    }
}

return query_string;
}();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...