我发现一些代码可以从URL以?a=1&b=2
的形式获取参数,但是有些部分我不理解。
我可以在某种程度上算出最后一部分-他在“&”上分割字符串,然后在“ =”两侧提取部分。我不太了解encodeURIComponent函数,我查了一下仍然很困惑。但是,主要问题是以下三行:
var parser = document.createElement('a');
parser.href = window.location.href;
var query = parser.search.substring(1);
如何使不存在的元素起作用,为什么他可以parser.href
,为什么parser.search.substring(1)
呢?
完整代码:
function get_params() {
var params = {};
var parser = document.createElement('a');
parser.href = window.location.href;
var query = parser.search.substring(1);
var vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
}
答案 0 :(得分:1)
它将创建一个my_list = ['0007', '7000']
final = set()
for item in my_list:
if item not in final and item[::-1] not in final:
final.add(item)
final = list(final)
print(final)
# output: ['0007']
元素,其<a>
属性等于当前URL。然后,查询此元素以获取GET查询字符串。
但是,这3行:
href
可以替换为:
var parser = document.createElement('a');
parser.href = window.location.href;
var query = parser.search.substring(1);
答案 1 :(得分:0)
var parser = document.createElement('a');
parser.href = window.location.href;
上面的代码创建了一个HTML <a>
标签,并在浏览器窗口中创建了指向当前页面的链接。
答案 2 :(得分:0)
使用parser.search
不起作用。不知道那里发生了什么,也不清楚他们为什么制作<a>
元素只是为了在其上添加href。这里有类似的东西会起作用:
function get_params() {
var params = {};
var href = window.location.href;
href = href.substring(href.lastIndexOf("?"), href.length)
var vars = href.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
}
对于decodeURIComponent
,URL编码了一些字符以进行传输。例如,空格由%20
表示。此函数将其解码回常规字符串。