?? url.lib.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 + -