zoukankan      html  css  js  c++  java
  • javascript中获取标准URL的参数

    /**
     * 获取标准URL的参数
     * @_key:字符串,不支持数组参数(多个相同的key)
     * @_url:字符串,(window).location.href,使用时别误传入非window对象
     * @_spliter:字符串,参数间分隔符
     * 注意:
     * 	1、如不存在指定键,返回空字符串,方便直接显示,使用时注意判断
     * 	2、非标准URL勿用
     * 	3、query(?)与hash(#)中存在键值一样时,以数组返回
     */
    function getUrlParams(_key, _url, _spliter) {
    	if (typeof(_url) == "object") {
    		var url = _url.location.href;
    	} else {
    		var url = _url ? _url : window.location.href;
    	}
    	if (url.indexOf("?") == -1 && url.indexOf("#") == -1) {
    		return "";
    	}
    	var spliter = _spliter || "&";
    	var spliter_1 = "#";
    	var haveQuery = false;
    	var x_0 = url.indexOf(spliter);
    	var x_1 = url.indexOf(spliter_1);
    	var urlParams;
    	if (x_0 != -1 || x_1 != -1 || url.indexOf("?") != -1) {
    		if(url.indexOf("?") != -1) urlParams = url.split("?")[1];
    		else if(url.indexOf("#") != -1) urlParams = url.split("#")[1];
    		else urlParams = url.split(spliter)[1];
    		if (urlParams.indexOf(spliter) != -1 || urlParams.indexOf(spliter_1) != -1) {//可能出现 url?a=1&b=3#c=2&d=5 url?a=1&b=2 url#a=1&b=2的情况。
    			var v = [];
    			if(urlParams.indexOf(spliter_1) != -1){
    				v = urlParams.split(spliter_1);
    				urlParams = [];
    				for(var x = 0; x < v.length; x++){
    					urlParams = urlParams.concat(v[x].split(spliter));
    				}
    			}else{
    				urlParams = urlParams.split(spliter);
    			}
    		} else {
    			urlParams = [urlParams];
    		}
    		haveQuery = true;
    	} else {
    		urlParams = [url];
    	}
    	var valueArr = [];
    	for (var i = 0, len = urlParams.length; i < len; i++) {
    		var params = urlParams[i].split("=");
    		if (params[0] == _key) {
    			valueArr.push(params[1]);
    		}
    	}
    	if (valueArr.length > 0) {
    		if (valueArr.length == 1) {
    			return valueArr[0];
    		}
    		return valueArr;
    	}
    	return "";
    }
    //*****************************获取标准URL的参数 end********************//
    

      

  • 相关阅读:
    spring+redis+nginx 实现分布式session共享
    nginx 中location和root,你确定真的明白他们关系?
    idea设置自定义快捷键
    jsp 页面导出excel时字符串数字变成科学计数法的解决方法
    Linux 查看tomcat占用的端口号
    mybatis 单一参数时的动态语句
    cxf + spring + maven 开发webservice
    Vim 快捷键
    vim与windows/linux之间的复制粘贴小结
    在Linux中执行.sh脚本,异常
  • 原文地址:https://www.cnblogs.com/b302/p/3842691.html
Copyright © 2011-2022 走看看