zoukankan      html  css  js  c++  java
  • 取得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] : "";
    }
    

      

  • 相关阅读:
    poj2942 点-双联通+二分图染色
    poj1523割顶-点双联通
    poj3694 边-双连通分量+lca
    poj3177边-双连通分量
    poj3352 边-双联通分量
    Codeforces Round #377 (Div. 2) F
    Educational Codeforces Round 30D. Merge Sort
    洛谷p3369 treap
    hdu3572线性欧拉筛
    HYSBZ
  • 原文地址:https://www.cnblogs.com/mingzhanghui/p/9168297.html
Copyright © 2011-2022 走看看