取得get参数 从url

1. getUrlParam.js

define(function() { // url参数
    var data, index;
    (function init() {
        data = [];
        index = {};
        var u = window.location.search.substr(1);
        if (u != '') {
            var params = decodeURIComponent(u).split('&');
            for (var i = 0, len = params.length; i < len; i++) {
                if (params[i] != '') {
                    var p = params[i].split("=");
                    if (p.length == 1 || (p.length == 2 && p[1] == '')) {// p | p=
                        data.push(['']);
                        index[p[0]] = data.length - 1;
                    } else if (typeof(p[0]) == 'undefined' || p[0] == '') { // =c | =
                        data[0] = [p[1]];
                    } else if (typeof(index[p[0]]) == 'undefined') { // c=aaa
                        data.push([p[1]]);
                        index[p[0]] = data.length - 1;
                    } else {// c=aaa
                        data[index[p[0]]].push(p[1]);
                    }
                }
            }
        }
    })();
    return {
        // 获得参数,类似request.getParameter()
        param : function(o) { // o: 参数名或者参数次序
            try {
                return (typeof(o) == 'number' ? data[o][0] : data[index[o]][0]);
            } catch (e) {
            }
        },
        //获得参数组, 类似request.getParameterValues()
        paramValues : function(o) { //  o: 参数名或者参数次序
            try {
                return (typeof(o) == 'number' ? data[o] : data[index[o]]);
            } catch (e) {}
        },
        //是否含有paramName参数
        hasParam : function(paramName) {
            return typeof(paramName) == 'string' ? typeof(index[paramName]) != 'undefined' : false;
        },
        // 获得参数Map ,类似request.getParameterMap()
        paramMap : function() {
            var map = {};
            try {
                for (var p in index) {  map[p] = data[index[p]];  }
            } catch (e) {}
            return map;
        }
    }
});

2. require.js 配置

// require.js 依赖的js库路径配置
require.config({
    paths : {
        // "jquery-1.12" : "../assets/jqui/external/jquery/jquery",
        "jquery-ui": "../assets/jqui/jquery-ui",
        // "jquery": "../assets/bootstrap/js/jquery-3.3.1.min",
        "jquery": "../assets/ckeditor/js/jquery-3.2.1",
        "ckeditor-core": "../assets/ckeditor/ckeditor",
        'ckeditor-jquery': "../assets/ckeditor/adapters/jquery",
        "jquery-cookie": "../assets/js/jquery.cookie",
        "bootstrap": "../assets/bootstrap/js/bootstrap",
        "alert": "js/lib/alert",
        "supersized": "../assets/js/login/supersized.3.2.7",
        "url-param": "js/util/getUrlParam",
        'image-preview': 'js/util/preview'
    },
    shim: {
        'ckeditor-jquery':{
            deps:['jquery','ckeditor-core']
        },
        'jquery-cookie': {
            deps: ['jquery']
        },
        'bootstrap': {
            deps: ['jquery']
        },
        'jquery-ui':{
            deps: ['jquery']
        }
    }
});

  3. 使用

require(['url-param'], function(URLParam) {
         var data = {
                id: URLParam.param("id"),
                schoolName: URLParam.param('schoolName'),
                columnName: URLParam.param('columnName'),
                title: URLParam.param("title")
         };
})

  

* 获取 url 中的参数
1. 指定参数名称,返回该参数的值 或者 空字符串
2. 不指定参数名称,返回全部的参数对象 或者 {}
3. 如果存在多个同名参数,则返回数组

input: http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe

output: [1, 2, 3]

function getUrlParam(sUrl, sKey) {
    var qs = sUrl.substr(sUrl.indexOf('?')+1),
    	a = decodeURIComponent(qs).split('&'),
    	o = {};

    a.forEach(function(s) {
    	var pair = s.split('='), 
    		k = pair[0], 
    		v = pair[1],
    		i = v.lastIndexOf('#');
    	if (0<=i) {
    		v = v.substring(0, i);
    	}

    	if (o.hasOwnProperty(k)) {
    		if (!(o[k] instanceof Array)) {
       			o[k] = [o[k]];
    		}
    		o[k].push(v);
    	} else {
    		o[k] = v;
    	}
    });
    if (!sKey) {
    	return o;
    }
    return o[sKey] ? o[sKey] : "";
}

  

原文地址:https://www.cnblogs.com/mingzhanghui/p/9168297.html