Mootools常用方法扩展(四)
作者:Fdream 来源:Fdream博客 发布时间:2009-02-21 11:12:00
标签:mootools,方法,扩展,JavaScript库
继续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);
}
});
0
投稿
猜你喜欢
- 最近在工作当中遇到一个问题 有个页面需要添加一个浏览历史记录功能具体来说就是要记录下用户在此网站的点击历史 并把它们降序排列出来(只显示前6
- 我们在编写asp程序时经常会使用到这个功能,一般我们这样判断如:if a="" then ,而这个函数考虑的就比较全面了
- 在使用mysql视图是出现问题: The user specified as a definer ('root'@'
- 周六。据闻北服美女甚多,于是应邀去做了一个关于UED的讲座。人不多,讲的很乱,但大家听的很认真,欣慰。讲完之后回答了很多关于社区、搜索、设计
- 一、数组的创建方式一var a = new Array(); a[0]="wo"
- blankzheng的blog:http://www.planabc.net/经常有朋友问我,网站要在哪些浏览器上测试?要达到怎样的兼容?我
- 技巧问题 Mysql的远程连接出现"Lost connection to MySQL server during query&qu
- SQL Server 6.5作为面向中小型企业的网络数据库服务系统,提供了 与众多高级数据库管理器相同的运行性能,向传统的数据库厂商发起了强
- myisam_max_[extra]_sort_file_size足够大delay_key_write减少io,提高写入性能bulk_ins
- 我设了两个SESSION:SESSION(A1),SESSION(A2),然后我现在想结束其中一个SESSION(如:ESEEION(A1)
- 问题:我想上传文件时后改名,下载时又将名改回来。 如:我上传一张“我的照片.jpg”上传后改为系统数名“20040302001.jpg”下载
- 是在客户端确认还是在服务器端确认? <SCRIPT LANGUAGE="VBSc
- 随着网页制作热潮的兴起,Dreamweaver 4.0强大的功能深受众多网页制作者的喜爱。特别是Dreamweaver 4.0中有许多第三方
- aspjpeg组件官方下载地址:http://www.persits.com/说明: 1、aspjpeg能对图片水印进行透明度调整
- rss.asp格式的 下面代码保存为rss.asp 代码如下:<!--#include file="conn.as
- 最早大家都没有给链接加title的习惯,后来因为w3c标准普及,又集体加上了title。从一个极端走到另个极端,于是出现很多怪异现象。两方面
- 这篇论坛文章(赛迪网技术社区)主要介绍了配置一个高可用性的MySQL服务器负载均衡群集的具体过程,详细内容请参考下文:本文将告诉你如何配置一
- 如何制作一个从Access数据库中读取记录的下拉菜单?看看这个例子:<% SQL = "SEL
- myisam_max_[extra]_sort_file_size足够大delay_key_write减少io,提高写入性能bulk_ins
- 现在很多地方都需要用到关键词过滤功能。比如一般的服务器都不允许一些词出现在网页上,站长有时候会对在本网站发布信息的内容进行一个广告过滤等。雨