js解析或获取页面路径归纳
/** * 当填写参数href后,解析你给的参数,如果为空自动从获取浏览器的地址
*测试路径:>>>http://127.0.0.1:8020/url/index.html?id=1.2&gys=7777777777777777777777777&name=思思博士#api/126 */ function urlResolve(href){ return { href:href?href:window.location.href,//获取路径 search:window.location.search,// 查询(参数)部分 带问号的 pathname:window.location.pathname,//页面路径 url/index.html port:window.location.port,//URL 的端口部分 8080 protocol:window.location.protocol,//URL 的协议部分返回值 http: host:window.location.host,//url主机部分返回值 127.0.0.1:8020 hash:window.location.hash, //锚点后面的值 #api/126 getPageName:function(){//获取页面名称 var arr=this.getPageNameAndExtName().split("."); return arr[0]; }, getExtName:function(){//获取扩展名 var arr=this.getPageNameAndExtName().split("."); return arr[1]; }, getPageNameAndExtName:function(){//获取页面名称和扩展名称 var arr=this.href.split("?")[0].split("/"); var len=arr.length; return arr[len-1]; }, getParam:function(key){//获取参数 /** * 填写了key获取指定的参数 * 没填写key参数获取所有的参数,以json格式返回 */ var query=this.href.split("?")[1] if(!query){ return null; } var params={}; var paramArr=query.split("&"); var len=paramArr.length; var params={}; var itemParam=[]; if(arguments.length){//有参数 for(var i=0;i<len;i++){ itemParam=paramArr[i].split("="); if(itemParam[0]==key){ return itemParam[1]; } } }else{//没有参数 for(var i=0;i<len;i++){ itemParam=paramArr[i].split("="); params[itemParam[0]]=itemParam[1]; } return params; } } } }
方法调用
var res=urlResolve().href; res=urlResolve().search; res=urlResolve().pathname; res=urlResolve().port; res=urlResolve().protocol; res=urlResolve().host; res=urlResolve().hash; res=urlResolve().getPageName(); res=urlResolve().getExtName(); res=urlResolve().getPageNameAndExtName(); res=urlResolve().getParam("gys"); res=urlResolve("http://127.0.0.1:8020/url/1.html?gys=891260").getParam("gys");