静态网站如何获取Get参数,通过js获取url的参数数据的实现方式

摘要:不使用动态语言php,java等,直接通过js获取链接中传递的get数据的方法总结。javascript可以获取当前页面的url 只要对获取下来的url进行简单地解析即可。

不使用动态语言php,java等,直接通过js获取链接中传递的get数据的方法总结。下面给大家说一下用javascript在静态页面上接受Get参数的方法,其实很简单 只要用户打开的页面url后带有参数。而javascript可以获取当前页面的url 只要对获取下来的url进行简单地解析即可。


方法一、正则表达式

推荐使用,方便快捷的一种方式,代码如下:

;(function(w) {
	var Plugin ={//默认为match
		getUrlParam:function(name) {//获取url中的参数
			var reg = new RegExp('(^|&?)' + name + '=([^&]*)(&|$)', 'i');
		    var r = window.location.href.substr(1).match(reg);
		    if (r != null) {
		        return unescape(r[2]);//如果参数有中文使用decodeURl解码返回
		    }
		    return undefined;
		},
	};
	w.G=Plugin;
})(window);

使用:console.log(G.getUrlParam('name')),就可获取参数name的值

注意:unescape()的方式返回,在获取中文参数的时候,获取到的值是乱码的,解决方法:将解码方式unscape换为decodeURI。出现的原因:原因:浏览器会将url中的中文参数进行encodeURI编码,所以要通过js使用decodeURI进行解码


方法二、传统数组方式

通过返回数组的形式获取,代码如下

function get(){
	let u=window.location.href //获取当前页面的url
	let len=u.length //获取url的长度
	let offset=u.indexOf("?") //设置参数字符串开始的位置
	let info=u.substr(offset,len) //取出参数字符串 这里会获得类似“id=1”这样的字符串
	return info.split("=") //对获得的参数字符串按照“=”进行分割
}

使用:var g=get();g[0]获取Get的第一个参数


方法三

function GetRequest() {
   var url = location.search; //获取url中"?"符后的字串
   var theRequest = new Object();
   if (url.indexOf("?") != -1) {
      var str = url.substr(1);
      strs = str.split("&");
      for(var i = 0; i < strs.length; i ++) {
         theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
      }
   }
   return theRequest;
}

使用:GetRequest()['name']

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_13