我目前有一个函数可以获取浏览器窗口 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;
}();
最佳答案
无需使用原型(prototype)。 window.location 只有一个。 以下代码对我有用。只需摆脱原型(prototype)。
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;
}();
关于javascript - 扩展 window.location 以存储 GET 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382888/