扩展window.location以存储GET变量

时间:2010-03-04 21:36:15

标签: javascript oop

我目前有一个抓取浏览器窗口uri的函数,解析变量并将它们分配给变量。这很好,但我想扩展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 个答案:

答案 0 :(得分:2)

无需使用原型。只有一个window.location。 以下代码适用于我。只是摆脱原型。

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;
}();