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
投稿
猜你喜欢
教你轻松学会SQL Server记录轮班的技巧
2009-02-19 17:38:00
SQL注入防御:用三种策略应对SQL注入攻击
2008-12-15 16:31:00
一个不错的js+css二级分类菜单代码
2007-12-28 21:22:00
oracle 分页 很棒的sql语句
2009-07-02 11:44:00
关于window.opener的用法
2008-02-23 11:03:00
用Dreamweaver设计Wordpress留言板教程(一)
2010-03-17 15:44:00
sqlserver 快速生成汉字的首拼字母的函数(经典)
2012-06-06 20:16:41
SQL Server 2008中的新日期数据类型
2009-03-16 15:05:00
戴尔是如何设计新官网首页的
2008-07-08 19:02:00
php获取文件扩展名的3种方法实例
2023-05-25 02:15:51
网页版权的正确写法
2007-09-22 09:13:00
模式化窗口
2009-06-18 18:41:00
将HTML自动转为JS代码
2010-03-17 20:49:00
Javascript:window对象出身何处
2007-08-28 15:16:00
使用Javascript动态增加,删除表格
2008-02-03 19:15:00
用"表情符号"做植入广告 是否可行呢?
2009-02-23 13:07:00
QQ连连看 for iPhone 设计实录分享
2010-09-25 12:54:00
ASP中取得图片宽度和高度
2009-11-08 18:39:00
10款顶级jQuery插件推荐
2011-08-14 07:55:39
Oracle字符集修改查看方法
2009-11-05 21:45:00