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

时间: 2017-10-26阅读: 2454标签: 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']

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/13

从输入URL到页面加载发生了什么?

输入URL到页面加载发生了什么?通过连接这个过程,然后针对性地对每个过程进行优化,最终实现的就是我们的前端性能优化。本篇文章主要介绍一些基础性的概念,很少涉及真正的性能优化。

PHP利用get_headers()函数判断远程的url地址是否有效

利用url访问远程的文件、图片、视频时有时需要请求前判断url地址是否有效。利用PHP自带的函数get_headers(),利用http返回值是否存在200状态,来判断url地址是否有效。

解决window.location.href跳转无效问题解决办法

原因是 a标签的href跳转会执行在window.location.href设置的跳转之前:如果是表单form的话 也会先执行form提交。提交之后 就已经不在当前页面了。所以 window.location.href无效。

前后端分离, 前端如何防止直接输入URL进入页面?

前后端分离,如何防止用户直接在地址栏输入url进入页面,也就是判断用户是否登录,没有,则直接跳转到登录页,后台可以用session记录用户登陆的状态,疑问的是前端每次ajax请求,都要做状态判断么

动态url、静态url和伪静态url的详细讲解

关于url的动态、静态、伪静态,很多站长朋友,尤其是新站长一直搞不清楚。网上的许多解释又语焉不详,下面就作详细的讲解下。

网页外链用了 target=_blank,结果悲剧了

今天给大家分享一个 Web 知识点。如果你有过一段时间的 Web 开发经验,可能已经知道了。不过对于刚接触的新手来说,还是有必要了解一下的。我们知道,网页里的a标签默认在当前窗口跳转链接地址

URL中“#” “?” &“”号的作用

#代表网页中的一个位置。其右面的字符,就是该位置的标识符。比如,http://www.example.com/index.html#print就代表网页index.html的print位置。浏览器读取这个URL后,会自动将print位置滚动至可视区域

Google 谈论杀死 URL 的第一步

“一个关键的挑战是避免将合法域名标记为可疑域名。” URL 是 Uniform Resource Locator(统一资源定位符)的缩写,用户无需记住复杂的 IP 地址而只需要记住域名就能访问一个网站。

this.$router.push相同地址报错的解决办法

不能push相同的地址,否则会出 Uncaught (in promise) NavigationDuplicated vue-router.esm.js?fe87:2089 的报错。 解决办法:在main.js下添加以下代码

URL scheme是什么?能拿来做什么?

URL scheme是系统提供的一种机制,它可以由应用程序注册,然后其他程序通过url scheme来调用该应用程序。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!