转自https://www.jianshu.com/p/073f79c5e438
下面我们举例一个URL,然后获得它的各个组成部分:http://i.cnblogs.com/EditPosts.aspx?opt=1
1、window.location.href (设置或获取整个 URL 为字符串)
1 2 3 var test = window .location.href;alert(test);
2、window.location.protocol (设置或获取 URL 的协议部分)
1 2 3 var test = window .location.protocol;alert(test);
3、window.location.host (设置或获取 URL 的主机部分)
1 2 3 var test = window .location.host;alert(test);
4、window.location.port (设置或获取与 URL 关联的端口号码)
1 2 3 var test = window .location.port;alert(test);
5、window.location.pathname (设置或获取与 URL 的路径部分(就是文件地址))
1 2 3 var test = window .location.pathname;alert(test);
6、window.location.search (设置或获取 href 属性中跟在问号后面的部分)
1 2 3 4 var test = window .location.search;alert(test); (PS:获得查询(参数)部分,除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值。)
7、window.location.hash (设置或获取 href 属性中在井号“#”后面的分段)
1 2 3 var test = window .location.hash;alert(test);
8、js获取url中的参数值*
一、正则法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 function getQueryString (name ) { var reg = new RegExp ('(^|&)' + name + '=([^&]*)(&|$)' , 'i' ); var r = window .location.search.substr(1 ).match(reg); if (r != null ) { return unescape (r[2 ]); } return null ; } alert(GetQueryString("参数名1" )); alert(GetQueryString("参数名2" )); alert(GetQueryString("参数名3" ));
二、split拆分法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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; } var Request = new Object(); Request = GetRequest();<br>// var id=Request["id"]; // var 参数1,参数2,参数3,参数N; // 参数1 = Request['参数1']; // 参数2 = Request['参数2']; // 参数3 = Request['参数3']; // 参数N = Request['参数N'];
三、指定取
比如说一个url: http://i.cnblogs.com/?j=js , 我们想得到参数j的值,可以通过以下函数调用。
1 2 3 4 5 6 7 8 9 10 11 12 function GetQueryString (name ) { var reg = new RegExp ("(^|&)" + name + "=([^&]*)(&|$)" , "i" ); var r = window .location.search.substr(1 ).match(reg); var context = "" ; if (r != null ) context = r[2 ]; reg = null ; r = null ; return context == null || context == "" || context == "undefined" ? "" : context; } alert(GetQueryString("j" ));
四、单个参数的获取方法
1 2 3 4 5 6 7 8 9 function GetRequest ( ) { var url = location.search; if (url.indexOf("?" ) != -1 ) {? var str = url.substr(1 ); strs = str.split("=" );? alert(strs[1 ]);???? } }