Mootools常用方法扩展(四)
作者:Fdream 来源:Fdream博客 时间:2009-02-21 11:12:00
继续Mootools常用方法扩展,这次是Window类上的扩展,也就是全局函数。
方法:$params
说明:获取页面URL参数。你可以使用任何指定的分隔符,比如'#',默认为'#'。
Window.implement({
$params: function(delimiter) {
///<summary>
/// 获取页面URL的参数,返回包含参数的hash对象
///</summary>
///<param name="delimiter" type="String">参数和URL的分隔符,比如?或者#,默认为#</param>
///<returns type="Hash" />
delimiter = (delimiter || '#').escapeRegExp();
var params = new Hash();
try {
var requestStr = (location.toString().match(new RegExp(delimiter + '(.+)$')) || [0, 0])[1];
if (requestStr) {
params = requestStr.toHash(true);
}
}
catch (e) {
}
return params;
}
}
方法:$dump
说明:类似于PHP中的var_dump方法,打印指定的变量或者对象的内容,返回描述变量内容的字符串。
Window.implement({
$dump: function(obj, options) {
///<summary>
/// 打印一个变量或者对象的内容,返回描述变量内容的字符串
///</summary>
///<param name="obj" type="Object">要打印的变量</param>
///<param name="options" type="Object">
/// 选项:
/// delimiter: 变量描述之间的分隔符,默认为“, ”;
/// showFunction: 是否打印函数内容,默认为false;
/// showClass: 是否打印类的构造函数,默认为false;
/// showArrayValue: 是否打印数组内容,默认为true;
/// sort: 排序方式,默认不排序,可以为asc(顺序), desc(逆序)
///</param>
///<returns type="Hash" />
options = options || {};
var dlm = options.delimiter || ', ';
var rf = options.showFunction ? true : false;
var rc = options.showClass ? true : false;
var rav = options.showArrayValue === false ? false : true;
var st = options.sort ? options.sort : null;
var s = [];
switch ($type(obj)) {
case 'element':
case 'hash':
case 'native':
case 'object':
case 'window':
var v, ty;
for (var p in obj) {
try {
v = obj[p];
ty = $type(v);
if ('function' == ty && !rf) {
s.push(['[', p, '](', ty, ') => [function Function]'].join(''));
}
else if (('class' == ty || 'native' == ty) && !rc) {
s.push(['[', p, '](', ty, ') => [class Class]'].join(''));
}
else if ('string' == ty) {
s.push(['[', p, '](', ty, ' ', v.length, ') => ', v].join(''));
}
else if ('array' == ty) {
if (rav && rf) {
s.push(['[', p, '](', ty, ' ', v.length, ') => ', v].join(''));
}
else if (rav && !rf) {
var tv, tty, ta = [], len = v.length;
for (var i = 0; i < len; i++) {
if ('function' == $type(v[i])) {
ta.push('[function Function]');
}
else {
ta.push(v[i]);
}
}
s.push(['[', p, '](', ty, ' ', v.length, ') => ', ta].join(''));
}
else {
s.push(['[', p, '](', ty, ' ', v.length, ') => [array Array]'].join(''));
}
}
else {
s.push(['[', p, '](', ty, ') => ', v].join(''));
}
}
catch (e) {
ty = 'unknow';
v = '[Permission Denied]';
s.push(['[', p, '](', ty, ') => ', v].join(''));
}
}
break;
case 'array':
var l = obj.length;
var v, t;
for (var i = 0; i < l; i++) {
v = obj[i];
t = $type(v);
if ('function' == t && !rf) {
s.push(['[', i, '](', ty, ') => [function Function]'].join(''));
}
else {
s.push(['[', i, '](', ty, ') => ', v].join(''));
}
}
break;
case 'string':
s.push([$type(obj), ' ', obj.length, ' => ', obj].join(''));
break;
default:
s.push([$type(obj), ' => ', obj].join(''));
break;
}
if (st) {
return s.sortBy({ type: st }).join(dlm);
}
return s.join(dlm);
}
});
标签:mootools,方法,扩展,JavaScript库
0
投稿
猜你喜欢
JS踩坑实战之19位数Number型精度丢失问题详析
2024-04-10 10:44:23
Git原理和常用操作
2023-02-01 23:55:55
浅谈ThinkPHP的URL重写
2024-05-13 09:24:20
数字人组件反写[asp组件开发实例2]
2009-06-09 13:15:00
Python datetime模块的使用示例
2022-10-20 22:33:39
Python获取文件所在目录和文件名的方法
2021-04-07 05:44:35
Phar反序列化超详细介绍
2023-06-05 07:06:02
基于python3实现倒叙字符串
2023-02-02 17:41:28
Django查询数据库的性能优化示例代码
2024-01-22 22:18:48
python创建文件备份的脚本
2023-04-07 06:17:44
python实现将多个文件分配到多个文件夹的方法
2023-04-13 20:48:46
Django学习笔记之ORM基础教程
2022-07-25 22:59:07
详解python函数的闭包问题(内部函数与外部函数详述)
2023-01-22 20:53:01
WinHttp.WinHttpRequest--XmlHttp获取跳转页面的功能
2010-03-22 14:34:00
我跟iframe之间的误会
2008-03-17 13:30:00
keras的load_model实现加载含有参数的自定义模型
2021-03-05 08:18:56
python3.9.1环境安装的方法(图文)
2023-06-26 15:58:26
layui radio单选限制下一个radio单选的实例
2024-06-09 15:52:07
TensorFlow实现从txt文件读取数据
2021-03-02 21:04:59
Python中实现switch功能实例解析
2021-06-03 05:35:09