我目前有一个抓取浏览器窗口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;
}();
答案 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;
}();