1. 程式人生 > >jquery方法擴充套件獲取url引數

jquery方法擴充套件獲取url引數

//  獲取當前頁面 url 引數。
    //  返回值:該方法返回一個數組,陣列中的每個元素都是一個 JSON 物件,該 JSON 物件包含如下屬性:
    //      name:   表示 url 引數的名稱;
    //      value:  表示 url 引數的值;
    //  也可以通過陣列訪問器快速訪問某個特定名稱的引數值,方法如:coreUtil.getRequest()["id"]。

(function (window, $, undefined) {
//  定義 通用工具方法 擴充套件物件基元
coreUtil = function () { return Object.apply(this, arguments); },
coreUtil.fn = coreUtil.prototype = {};
//  定義 jQuery 擴充套件物件基元
coreJquery = function () { return $.apply(this, arguments); },
coreJquery.fn = coreJquery.prototype = {};
coreJquery.util = coreUtil;

    var document = coreUtil.document = window.document,
        location = coreUtil.location = window.location,
        docElem = coreUtil.docElem = document.documentElement,
        history = coreUtil.history = window.history,
        parent = coreUtil.parent = window.parent,
        top = coreUtil.top = window.top,
        $$ = coreJquery.emptyJquery = coreJquery.empty$ = coreJquery.$$ = coreUtil.emptyJquery = coreUtil.empty$ = coreUtil.$$ = $(),
        core_string = version,
        //core_date = coreNullable.Date,
        //core_number = coreNullable.Number,
        core_array = coreNullable.Array,
        //core_boolean = coreNullable.Boolean,
        //core_trim = core_string.trim,
        core_push = core_array.push,
        core_slice = core_array.slice,
        core_splice = core_array.splice,
        //core_sort = core_array.sort,
        //core_join = core_array.join,
        core_isArray = Array.isArray;


    //  定義版本
    coreUtil.version = version;

    //  獲取指定物件的型別。
    coreUtil.type = $.type;

    //  測試物件是否是視窗(有可能是Frame)。
    coreUtil.isWindow = $.isWindow;

    //  測試物件是否是布林(Boolean)型別值。
    coreUtil.isBoolean = function (obj) { return coreUtil.type(obj) == "boolean"; };

    //  測試物件是否是字串(String)型別值。
    coreUtil.isString = function (obj) { return coreUtil.type(obj) == "string"; };

    //  測試物件是否是日期(Date)型別值。
    coreUtil.isDate = function (obj) { return coreUtil.type(obj) == "date"; };

    //  測試物件是否是正則表示式(RegExp)。
    coreUtil.isRegExp = function (obj) { return coreUtil.type(obj) == "regexp"; };

    //  測試傳入的引數是否是一個 javscript 物件;
    coreUtil.isObject = function (obj) { return coreUtil.type(obj) == "object"; };

    //  測試物件是否是陣列(Array)。
    coreUtil.isArray = $.isArray;

    //  測試物件是否是函式。
    //  注意:在IE瀏覽器裡,瀏覽器提供的函式比如'alert'還有 DOM 元素的方法比如 'getAttribute' 將不認為是函式。
    coreUtil.isFunction = $.isFunction;

    //  測試物件是否是數值或數值格式的字串。
    //  方法檢查它的引數是否代表一個數值。如果是這樣,它返回 true。否則,它返回false。該引數可以是任何型別的。
    coreUtil.isNumeric = coreUtil.likeNumber = coreUtil.likeNumeric = $.isNumeric;

    //  判斷物件是否是數值型別;
    coreUtil.isNumber = function (obj) { return coreUtil.type(obj) == "number"; };

    //  測試物件是否是空物件(不包含任何屬性)。
    //  這個方法既檢測物件本身的屬性,也檢測從原型繼承的屬性(因此沒有使用hasOwnProperty)。
    coreUtil.isEmptyObject = $.isEmptyObject;

    //  測試物件是否為空(不包含任何屬性的空物件、null、undefined、空字串、全空格)。
    //  這個方法既檢測物件本身的屬性,也檢測從原型繼承的屬性(因此沒有使用hasOwnProperty)。
    coreUtil.isEmptyObjectOrNull = function (obj) {
        switch (coreUtil.type(obj)) {
            case "string":
                return coreString.isNullOrWhiteSpace(obj);
            case "array":
                return obj.length == 0;
            case "date":
                return Date.parse(obj) == 0;
            case "object":
                return coreUtil.isEmptyObject(obj);
        }
        return obj == null || obj == undefined;
    };

    //  測試物件是否是純粹的物件(通過 "{}" 或者 "new Object" 建立的)。
    coreUtil.isPlainObject = $.isPlainObject;

    //  判斷物件是否為 "未定義" 值(即 undefined)。
    coreUtil.isUndefined = function (obj) { return obj === undefined || typeof obj === "undefined"; };

    //  判斷物件是否為空(Null)值。
    coreUtil.isNull = function (obj) { return obj === null; };

    //  判斷物件是否為 "未定義" 值(即 undefined)或空(Null)值。
    coreUtil.isNullOrUndefined = function (obj) { return coreUtil.isUndefined(obj) || coreUtil.isNull(obj); };

    //  測試物件不為 "未定義" 值(即 undefined)、空(Null)值、Boolean-False值、空字串值或數字0中的任何一種。
    coreUtil.isPositive = function (obj) { return obj ? true : false; };

    //  判斷物件是否為 "未定義" 值(即 undefined)、空(Null)值、Boolean-False值、空字串值或數字0中的一種。
    coreUtil.isNegative = function (obj) { return obj ? false : true; };

    //  測試物件是否是 jQuery 物件。
    coreUtil.isJqueryObject = function (obj) { return obj != null && obj != undefined && ((obj.jquery ? true : false) || obj.constructor === $$.constructor); };

    //  判斷物件是否是一個空的 jQuery 物件(不包含任何 DOM 元素,即 length = 0)。
    coreUtil.isEmptyJquery = coreUtil.isEmptyJqueryObject = function (obj) { return coreUtil.isJqueryObject(obj) && !obj.length; };

    //  定義一個空函式
    coreUtil.noop = coreUtil.isFunction($.noop) ? $.noop : function () { };

    //  判斷傳入的字串是否為Null或者為空字串或者全是空格。
    coreUtil.trim = $.trim;

    //  將一個 DOM 物件或者表示式解析為 jQuery 物件;
    //  如果該物件本身就已經是一個 jQuery 物件,則直接將其返回。
    coreUtil.parseJqueryObject = coreUtil.parseJquery = function (obj) { return coreUtil.isJqueryObject(obj) ? obj : $(obj); };

    //  檢測一個物件是否為一個數組物件或者類似於陣列對(具有陣列的訪問方式:具有 length 屬性、且具有屬性名為數字的索引訪問器)
    //  注意:此方法傳入 字串 時執行,也會返回 true,因為 字串 是一個字元陣列。
    coreUtil.likeArray = function (obj) {
        if (obj == null || obj == undefined || coreUtil.isWindow(obj)) {
            return false;
        }
        if (obj.nodeType === 1 && obj.length) {
            return true;
        }
        var type = coreUtil.type(obj);
        return type === "array" || type !== "function" && coreUtil.isNumeric(obj.length) && obj.length >= 0;
    };

    //  檢測一個物件是否為一個數組物件或者類似於陣列對(具有陣列的訪問方式:具有 length 屬性、且具有屬性名為數字的索引訪問器)且不是字串
    coreUtil.likeArrayNotString = function (obj) {
        return coreUtil.likeArray(obj) && !coreUtil.isString(obj);
    };


  coreUtil.getRequest = function () {
        var search = location.search;
        if (search.substr(0, 1) == "?") { search = search.substr(1, search.length - 1); }
        var result = [];
        if (search.length > 0) {
            var params = search.split("&");
            for (var i = 0; i < params.length; i++) {
                var param = params[i];
                var pos = param.indexOf("=");
                var name = param.substring(0, pos);
                var value = param.substr(pos + 1);
                result.push({ name: name, value: value });
                result[name] = value;
            }
        }
        return result;
    };
    coreUtil.request = coreUtil.getRequest();

})(window, jQuery);

具體使用

 var url = "InstallApplyForm.html?s=" + Math.random();
                $Core.UI.openDialog("redwind", url + "&installApplyId=" + value +"&type=red",
                    {
                        title: "檢視【安裝申請】",
                        width: '80%',
                        height: '90%',
                        onClose: function () {
                        }
                    });
key = $.util.request["installApplyId"];