⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 url.lib.js

📁 asp的bbs程序
💻 JS
字号:
/*
  By Hangring
  #2007.12.24#
  ---
  获取url参数
*/

$Defined('Url');
var Url = {l:location};

//Url.QueryString = undefined;

// get query string
// Usage: Url.Query(name);
// return object -> [string, string, ..., string]
Url.Get = function () {
    var $_ = arguments;

    if ($_.length == 1) {
        ($_ = ($_[0] in this.QS()) ? this.QS()[$_[0]] : '');
    }
    else if ($_.length > 1) {
        for (var i = 0; i < $_.length; i++) {
            $_[i] = $_[i] in this.QS() ? this.QS()[$_[i]] : '';
        }
    }
    else {
        $_ = '';
    }

    return $_;
}

// set query string
Url.Set = function (name /* :String */, value /* :String */) {
    this.QueryString[name] = value;
};

// retrieve the url
Url.Retrieve = function () {
    var _url = '';
    for (var item in this.QueryString) {
        var cur = this.QueryString[item];

        if (_url != '') _url += '&';
        if (typeof(cur) == 'object') {
            for (var i = 0, len = cur.length; i < len; i++) {
                if (_url != '') _url += '&';
                _url += item + '=' + encodeURIComponent(cur[i]);
            }
        }
        else {
            _url += item + '=' + encodeURIComponent(cur);
        }
    }

    return _url;
}

// %form
// 直接调用$QS可获取所有`name=value`对保存于window.$querystring
//   <__并返回`name=value`列表对象
// Url.QS()['element'] 可获取某个键值
Url.QS = function () {
    if (typeof this.QueryString == 'undefined') {
        this.QueryString = {};

        var query = this.l.search;
        query = query.substr(1);
        query = query.split('&');
        for (var i = 0, len = query.length; i < len; i++) {
            var item = query[i].split('=');
            var name = item[0];
            var value = decodeURIComponent(item[1] || '');

            if (typeof this.QueryString[name] == 'undefined') {
                //decodeURIComponent(item[1] || '');
                this.QueryString[name] = value;
            }
            else if (typeof(this.QueryString[name]) == 'object') {
                this.QueryString[name].push(value);
            }
            else {
                var _value = this.QueryString[name];
                this.QueryString[name] = [_value, value];
            }
        }
    }
    return this.QueryString;
}

// reload
Url.Reload = function (url) {
	if (!/^https?:\/\//i.test(url)) {
        var index = this.l.href.lastIndexOf(url);
		if (url != '/' && index > 0 && url != this.l.href.substr(index))
			this.l.reload(true);
		else
			this.l.href = url;
    }
	else
		this.l.href = url;
};

Url.ClearAnchor = function (url) {
    url = url || this.l.href;
    return url.substring(0, url.indexOf('#'));
};

Url.GetAnchor = function (url) {
    url = url || this.l.href;
    return url.substr((url.lastIndexOf('#') + 1) || url.length);
};

// go to anchor
Url.GotoAnchor = function (name) {
    if (name == '') return;
    this.l.hash = name;
};

// add url variable
Url.Add = function (url, name, value) {
    if (!value) return url;
    url = url.indexOf('?') > -1 ? '&' : '?';
    url += name + '=' + encodeURIComponent(value);
    return url;
};

Url.Escape = function (str) {
    return escape(this.UTF8Encode(str));
};

Url.UTF8Encode = function (str) {
    str = str.toString().replace(/\r\n/g, "\n");
    var utftext = "";

    for (var n = 0; n < str.length; n++) {
        var c = str.charCodeAt(n);
        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }
    return utftext;
};

Url.UTF8Decode = function (utftext) {
    var str = '';
    var i = 0;
    var c = c1 = c2 = 0;
    utftext = utftext.toString();
    while ( i < utftext.length ) {
        c = utftext.charCodeAt(i);
        if (c < 128) {
            str += String.fromCharCode(c);
            i++;
        }
        else if((c > 191) && (c < 224)) {
            c2 = utftext.charCodeAt(i+1);
            str += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        }
        else {
            c2 = utftext.charCodeAt(i+1);
            c3 = utftext.charCodeAt(i+2);
            str += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }
    return str;
};

Url.QS();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -