猿问
下载APP

在JavaScript中使用URL的GET参数

在JavaScript中使用URL的GET参数

如果我在一个页面上

http://somesite.com/somepage.php?param1=asdf

在该页面的JavaScript中,我想将一个变量设置为URL的GET部分中的参数值。

所以在JavaScript中:

<script>
   param1var = ...   // ... would be replaced with the code to get asdf from URI
   </script>

会是什么?


慕雪6442864
浏览 49回答 3
3回答

慕的地2183247

您可以获取位置对象的“搜索”部分 - 然后将其解析出来。var&nbsp;matches&nbsp;=&nbsp;/param1=([^&#=]*)/.exec(window.location.search);var&nbsp;param1&nbsp;=&nbsp;matches[1];

白板的微信

我做了gnarf解决方案的这个变种,所以调用和结果类似于PHP:function&nbsp;S_GET(id){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;a&nbsp;=&nbsp;new&nbsp;RegExp(id+"=([^&#=]*)"); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;decodeURIComponent(a.exec(window.location.search)[1]);}但是,由于在函数中调用会减慢进程,因此最好将其用作全局:window['var_name&nbsp;'] = decodeURIComponent( /var_in_get=([^&#=]*)/.exec(window.location.search)[1] );UPDATE当我还在学习JS时,我在更多JS行为中创建了一个更好的答案:Url&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;get(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;vars=&nbsp;{}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(window.location.search.length!==0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.location.search.replace(/[?&]+([^=&]+)=([^&]*)/gi,&nbsp;function(m,key,value){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key=decodeURIComponent(key); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(typeof&nbsp;vars[key]==="undefined")&nbsp;{vars[key]=&nbsp;decodeURIComponent(value);} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{vars[key]=&nbsp;[].concat(vars[key],&nbsp;decodeURIComponent(value));} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;vars; &nbsp;&nbsp;&nbsp;&nbsp;}};这允许仅使用调用Url.get。示例&nbsp;url&nbsp;?param1=param1Value&param2=param2Value&nbsp;可以像:Url.get.param1&nbsp;//"param1Value"Url.get.param2&nbsp;//"param2Value"这是一个snipet://&nbsp;URL&nbsp;GET&nbsp;paramsurl&nbsp;=&nbsp;"?a=2&a=3&b=2&a=4";Url&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;get(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;vars=&nbsp;{}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(url.length!==0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url.replace(/[?&]+([^=&]+)=([^&]*)/gi,&nbsp;function(m,key,value){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key=decodeURIComponent(key); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(typeof&nbsp;vars[key]==="undefined")&nbsp;{vars[key]=&nbsp;decodeURIComponent(value);} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{vars[key]=&nbsp;[].concat(vars[key],&nbsp;decodeURIComponent(value));} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;vars; &nbsp;&nbsp;&nbsp;&nbsp;}};document.querySelector('log').innerHTML&nbsp;=&nbsp;JSON.stringify(Url.get);<log></log>

慕运维1137616

这是一些示例代码。<script>var&nbsp;param1var&nbsp;=&nbsp;getQueryVariable("param1");function&nbsp;getQueryVariable(variable)&nbsp;{ &nbsp;&nbsp;var&nbsp;query&nbsp;=&nbsp;window.location.search.substring(1); &nbsp;&nbsp;var&nbsp;vars&nbsp;=&nbsp;query.split("&"); &nbsp;&nbsp;for&nbsp;(var&nbsp;i=0;i<vars.length;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pair&nbsp;=&nbsp;vars[i].split("="); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(pair[0]&nbsp;==&nbsp;variable)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;pair[1]; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;alert('Query&nbsp;Variable&nbsp;'&nbsp;+&nbsp;variable&nbsp;+&nbsp;'&nbsp;not&nbsp;found');}</script>
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答