js获取URL查询字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cheng_cuo_tuo/article/details/86620188
<script>
/*
	 URL:
	 	http://www.mysite.cn:80/news/index.asp?id=123&name=locaton#top
	Location对象的属性
	href		声明当前显示文档的完整URL,与其他Locations属性只声明部分URL不同,把该属性设置为新的URL会使浏览器读取并显示新的URL的内容。
	protocol	声明当前URL中的协议部分,包含后缀的冒号 "http:"
	host		声明当前URL中的主机名和端口号 www.mysite.cn:80
	hostname	声明当前URL中的主机名 www.mysite.cn
	port		声明当前URL中的端口号 80
	pathname	声明当前URL中的路径部分	new.index.asp
	search		声明当前URL中的查询部分,也包括前导问号  ?id=123&name=location
	hash		声明当前URL中锚部分,包含前导符#  #top 指定在文档中锚标记的名称
*/

//获取URL查询字符串参数值,可以抽取每个参数和参数值
var queryString = function(){
	var q = location.search.substring(1);	//获取查询字符串
	var a = q.split("&");	
	var o = {};
	for (var i = 0, len = a.length; i < len; i++){
		var n = a[i].indexOf("=");
		if (n == -1) continue;
		var v1 = a[i].substring(0, n);
		var v2 = a[i].substring(n + 1);
		o[v1] = unescape(v2);				//以名/值对的形式存储在对象中
	}
	return o;
}

var f1 = queryString();
for (var i in f1){
	document.write(i + "=" + f1[i] + "</br>");	
}
/*
		Location对象的这些属性都是可读可写的,如果改变了文档的location.href属性值,则浏览器就会载入新的页面。同样的,
	如果改变了location.hash属性值,则页面会跳转到新的锚点(<a name="anchor">或<element id="anchor">),但此时
	页面时不会重载的。例如:location.hash = '#top'
*/
</script>
/*
		Link对象也包含一个URL属性,不过Link对象表示的时文档中的超链接,而Location对象表示的是浏览器当前
	显文档的URL。Location对象能动态控制浏览器显示的文档,如果把一个含有URL的字符串赋给Location对象或它的
	href属性,浏览器就会把新的URL所指的文档装在进来,并显示出来。
*/

猜你喜欢

转载自blog.csdn.net/cheng_cuo_tuo/article/details/86620188
今日推荐