如何从 JavaScript 请求中获取“GET”变量?
是 jQuery 还是 YUI!有内置这个功能吗?
如何从 JavaScript 请求中获取“GET”变量?
是 jQuery 还是 YUI!有内置这个功能吗?
2021 年 6 月更新:
今天的浏览器具有用于处理 URL ( URL ) 和查询字符串 ( URLSearchParams ) 的内置 API ,这些应该是首选,除非您需要支持一些旧浏览器或 Opera mini(浏览器支持)。
原来的:
所有数据都可以在
window.location.search
你必须解析字符串,例如。
function get(name){
if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
return decodeURIComponent(name[1]);
}
只需使用 GET 变量名作为参数调用函数,例如。
get('foo');
如果变量没有值或不存在,此函数将返回变量值或未定义
你可以使用jquery.url
我这样做:
var xyz = jQuery.url.param("param_in_url");
试试下面的代码,它会帮助你从 url 获取 GET 参数。 更多细节。
var url_string = window.location.href; // www.test.com?filename=test
var url = new URL(url_string);
var paramValue = url.searchParams.get("filename");
alert(paramValue)
只是把我的两分钱放进去,如果你想要一个包含所有请求的对象
function getRequests() {
var s1 = location.search.substring(1, location.search.length).split('&'),
r = {}, s2, i;
for (i = 0; i < s1.length; i += 1) {
s2 = s1[i].split('=');
r[decodeURIComponent(s2[0]).toLowerCase()] = decodeURIComponent(s2[1]);
}
return r;
};
var QueryString = getRequests();
//if url === "index.html?test1=t1&test2=t2&test3=t3"
console.log(QueryString["test1"]); //logs t1
console.log(QueryString["test2"]); //logs t2
console.log(QueryString["test3"]); //logs t3
请注意,每个 get 参数的键都设置为小写。所以,我做了一个辅助函数。所以现在它不区分大小写。
function Request(name){
return QueryString[name.toLowerCase()];
}
您可以使用 URL 来获取 GET 变量。特别是,window.location.search
在“?”之后(并包括)给出所有内容。您可以在此处阅读有关 window.location 的更多信息。