2009-2
jQuery居然都没有JSON的decode和encode,精确类型判断也没有,囧……自己动手写吧!不过这些东西在网上都已经有很好的版本了,自己也不用太费脑筋,拿来用吧!类型判断在这里有一段很好的代码:http://lucassmith.name/pub/typeof.html,JSON的decode和encode就直接用Mootools的吧!(不过Mootools里面的JSON.encode方法还不够完美,我作了一些完善。)
/**
* extension of JSON, type for jQuery
* AUTHOR: xushengs@gmail.com
* LICENSE: http://www.opensource.org/licenses/mit-license.php
* WEBSITE: http://ooboy.net/
*/
(function($) {
// the code of this function is from
// http://lucassmith.name/pub/typeof.html
$.type = function(o) {
var _toS = Object.prototype.toString;
var _types = {
'undefined': 'undefined',
'number': 'number',
'boolean': 'boolean',
'string': 'string',
'[object Function]': 'function',
'[object RegExp]': 'regexp',
'[object Array]': 'array',
'[object Date]': 'date',
'[object Error]': 'error'
};
return _types[typeof o] || _types[_toS.call(o)] || (o ? 'object' : 'null');
};
// 剩下的代码请进入全文查看
})(jQuery);
2009-2
谢谢yzty的提醒,jQuery官方说是修改了一些bug,diff了一下代码,发现主要是selector里面的,主要是逻辑上的变化,接口没有任何变化,赶紧从1.3更新到1.3.1吧!
点击这里可以下载可以在Visual Studio 2008中显示智能提示的jQuery版本(jquery 1.3.1)。(发现jquery官方提供的1.3.1的vsdoc貌似是1.2.6的,有几个方法的参数都和1.3.1都不一样,还有部分代码不一样,囧……)


昨天晚上才发现已经出了jQuery的1.3版本,于是下载下来,把原来一个兄弟翻译的1.2.6的文档移植到了1.3中,点击这里可以下载可以在Visual Studio 2008中显示智能提示的jQuery版本。
相关截图:


纯属无聊,本来只是想写个豆瓣的插件,看到歌曲列表以后就可以在线试听或者下载,不过不能直接从搜索结果列表拿到mp3或者wma的真实地址,只能进去下载页面分析。
不过下载页面的地址的加密倒是简单,很容易就发现了URL密文和明文的对应关系,再稍微看一下JavaScript,就知道怎么还原了。还原方法如下(还是JavaScript版本的):
//48-0, 65-A, 97-a
var CHARACTERS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function decode(url, offset) {
var l = url.length;
var s = '', idx, ch;
for (var i = 0; i < l; i++) {
ch = url.charAt(i);
if (/[A-Za-z0-9]/.test(ch)) {
idx = CHARACTERS.indexOf(ch) - offset;
if (idx < 0) {
idx += 62
}
ch = CHARACTERS.charAt(idx);
}
s += ch;
}
return s;
}
2009-1
前几个月的时候就说过在JavaScript应用中使用Flash来存储本地数据,使用这个方式有一个非常大的好处就是:不同的浏览器可以共享相同的本地数据。
现在终于抽空整理了一下以前的应用,作为一个简单的开源项目发布了。在Google Code上的地址是:http://code.google.com/p/fookie/,代码里面有可以在vs中智能提示的文档。
JavaScript类名为Fookie,提供了以下几个Public方法:
- Fookie.init(swfUrl, options);
- Fookie.read(key);
- Fookie.write(key, value);
- Fookie.remove(key);
- Fookie.clear();
继续Mootools常用方法扩展,依然还是String类的扩展。
方法:unescapseHTML
说明:这个上次忘了,和escapseHTML正好是一对儿,功能正好相反。
String.implement({
unescapseHTML: function() {
///<summary>
/// 反转义字符中的HTML代码
///</summary>
///<returns type="STRING" />
var htmlChars = ['&~&', '<~<', '>~>'];
var r;
var s = this;
for (var i = htmlChars.length - 1; i >= 0; i--) {
r = htmlChars[i].split('~');
s = s.replace(new RegExp(r[1], 'g'), r[0]);
}
return s;
}
}
继续Mootools常用方法扩展,依然还是String类的扩展。
方法:format
说明:一个非常简单的format方法,和C#里面的format类似。这个方法会用参数来依次替换字符串中用大括号{}括起来的数字,比如用第一个参数替换{0},用第二个参数替换{1}等等。
String.implement({
format: function() {
///<summary>
/// 格式化一个字符串,替换其中用大括号包含的数字及大括号,类似C#的format
/// 如用第一个参数替换{0}
///</summary>
///<param name="values..." type="String">相关参数</param>
///<returns type="STRING" />
var s = this;
for (var i = 0; i < arguments.length; i++) {
s = s.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
}
return s;
}
}
收集了我们团队部分常用的方法,我稍微进行了一下整理,贴出来和大家分享。
先从String的扩展开始吧,后面有一部分的扩展要依赖这里扩展的方法。为了更加清晰和详细,我会一个方法一个方法地贴出来,你完全可以把所有的方法合并在一起。
方法:startsWith
说明:这个方法可以判断字符串是不是以指定的字符串开头。
String.implement({
startsWith: function(s) {
///<summary>
/// 检查一个字符串是不是以某个字符串开头
///</summary>
///<param name="s" type="String">开始字符串</param>
///<returns type="BOOLEAN" />
return (this.indexOf(s) == 0);
}
}
Processed in 0.078124 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
2009-1
用户中心
日志分类

最新日志
最新评论
统计信息






友情链接