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
投稿
猜你喜欢
- Python字典中的键是唯一的,但不同的键可以对应同样的值,比如说uid,可以是1001。id同样可以是1001。这样的话通过值来获取指定的
- 代码如下:'================================================== '函数名:
- 代码:hello.py#!/usr/bin/python# coding: utf-8# hello.pydef application(e
- Adodb.Stream是ADO的Stream对象,提供存取二进制数据或者文本流,从而实现对流的读、写和管理等操作. 组件:&qu
- 如果出现 automation服务器不能创建对象 解决方法:1、如果是Scripting.FileSystemObje
- 一.问题描述当我们在做项目的时候,创建一张用户表,如何让该表的主键id从0开始自增?网上搜索了很多解决方案,最后发现了一种方法必实现且有效的
- 现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。首先在pox.xml中引
- 本文实例为大家分享了opencv实现回形遍历像素算法的具体代码,供大家参考,具体内容如下代码实现# -*- coding:utf-8 -*-
- 注:本文涉及的是解压缩版的安装安装教程下载mysql地址是:http://dev.mysql.com/downloads/mysql/解压缩
- 当服务器必须提供与两个或更多个网络或网络子网的连接时,典型的方案是使用多宿主计算机。此计算机通常位于外围网络(也称为 DMZ、外围安全区域或
- Hi, 大家好~ 好久没有发有营养的东西,今天就扔一篇最近热点的Google Chrome 浏览器的试用心得吧。先说个比较搞的事情,Goog
- EXEC SQL WHENEVER SQLERROR CONTINUE; sqlglm(msg_buffer, &buf
- Linux版本升级:1、首先确认Linux操作系统中自带的python 版本时候与自己所需要的版本一致所有的python版本都在https:
- 本文实例为大家分享了python使用KNN算法识别手写数字的具体代码,供大家参考,具体内容如下# -*- coding: utf-8 -*-
- 关于axios的封装下面代码参考了 vue-element-admin 中的封装方式,request.js 文件如下,封装一个 axios
- 官网上关于组件继承分为两大类,全局组件和局部组件。无论哪种方式,最核心的是创建组件,然后根据场景不同注册组件。有一点要牢记,“Vue.js
- 1. 新建文件夹if not os.path.exists(feature_dir): os.makedirs(f
- 因为项目开发中遇到需要向后台传本周的开始和结束时间,以及上一周的起止时间,就琢磨了半天,总算写出来一套,写篇文章是为了方便自己记忆,也是分享
- 本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息。分享给大家供大家参考,具体如下:数据库存储爬取的信息(MySQL)爬取
- MySQL出现乱码的原因要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些