如何在JavaScript中获取“GET”请求参数?

如何从JavaScript请求中获取“GET”variables?

是否jQuery或YUI! 内置此function?

所有数据都在下面

window.location.search 

你必须parsingstring,例如。

 function get(name){ if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search)) return decodeURIComponent(name[1]); } 

只需使用GETvariables名称作为参数调用函数,例如。

 get('foo'); 

如果variables没有值或不存在,此函数将返回variables值或未定义

你可以使用jquery.url我这样做:

 var xyz = jQuery.url.param("param_in_url"); 

检查源代码

更新来源: https : //github.com/allmarkedup/jQuery-URL-Parser

只要把我的两分钱,如果你想要一个包含所有请求的对象

 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。 所以现在它是不区分大小写的。

 function Request(name){ return QueryString[name.toLowerCase()]; } 

您可以使用URL来获取GETvariables。 特别是, window.location.search提供了(包括)'?'之后的所有内容。 你可以在这里阅读更多关于window.location。

今天我需要把页面的请求参数放到一个关联数组中,所以我把以下内容放在一起,在朋友们的 帮助下 。 它也处理参数没有= true

举个例子:

 // URL: http://www.example.com/test.php?abc=123&def&xyz=&something%20else var _GET = (function() { var _get = {}; var re = /[?&]([^=&]+)(=?)([^&]*)/g; while (m = re.exec(location.search)) _get[decodeURIComponent(m[1])] = (m[2] == '=' ? decodeURIComponent(m[3]) : true); return _get; })(); console.log(_GET); > Object {abc: "123", def: true, xyz: "", something else: true} console.log(_GET['something else']); > true console.log(_GET.abc); > 123 

如果你已经使用jQuery,有一个jQuery插件来处理这个问题:

http://plugins.jquery.com/project/query-object

您可以parsing当前页面的URL以获取GET参数。 该URL可以通过使用location.hreffind。

尝试下面的代码,它将帮助你从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) 

地图缩小解决scheme:

 var urlParams = location.search.split(/[?&]/).slice(1).map(function(paramPair) { return paramPair.split(/=(.+)?/).slice(0, 2); }).reduce(function (obj, pairArray) { obj[pairArray[0]] = pairArray[1]; return obj; }, {}); 

用法:

 For url: http://example.com?one=1&two=2 console.log(urlParams.one) // 1 console.log(urlParams.two) // 2 

这里的函数按名称返回参数。 微小的变化,你将能够返回基地址,参数或锚点。

 function getUrlParameter(name) { var urlOld = window.location.href.split('?'); urlOld[1] = urlOld[1] || ''; var urlBase = urlOld[0]; var urlQuery = urlOld[1].split('#'); urlQuery[1] = urlQuery[1] || ''; var parametersString = urlQuery[0].split('&'); if (parametersString.length === 1 && parametersString[0] === '') { parametersString = []; } // console.log(parametersString); var anchor = urlQuery[1] || ''; var urlParameters = {}; jQuery.each(parametersString, function (idx, parameterString) { paramName = parameterString.split('=')[0]; paramValue = parameterString.split('=')[1]; urlParameters[paramName] = paramValue; }); return urlParameters[name]; }