Fdream's Blog
专注于WEB前端开发
Powered by Google
1 2 3 4 5 6 7 8 9 1084

我们先看一下JavaScript中关系运算符的类型转换规则:

引用内容:

关系运算符(<、>、<=、>=)

  • 试图将 expression1 和 expression2 都转换为数字。
  • 如果两表达式均为字符串,则按字典序进行字符串比较。
  • 如果其中一个表达式为 NaN,返回 false。
  • 负零等于正零。
  • 负无穷小于包括其本身在内的任何数。
  • 正无穷大于包括其本身在内的任何数。

所以很容易理解下面这样的比较:

参考代码: [复制代码] [保存代码]

1 < NaN: false
1 >= NaN: false

'a' < 1: false
'a' >= 1: false

需求总是不断变化的,相信有非常多的人也碰到过类似的问题:比如鼠标移到flash上就把flash放大,鼠标移开就缩小,嗯,说了半天其实这个东西就是用来做广告的。

一般的怎么做的呢?无非是在flash里面用ExternalInterface来调JavaScript,用JavaScript来调整swf的大小或者切换另一个swf,或者索性就在swf的上面覆盖一个透明层(貌似要用空白的图片才好使,否则事件还是会跑到swf里面去,而不是给这个层d),然后用这个层来捕捉事件,然后调整swf的大小。

相信很多“挑剔”的人都和我一样,嫌这个方法太麻烦,又不好看。为什么不能直接写在swf里面呢?我也不知道为什么,Adobe没有提供这个接口……不过ActionScript不是可以调JavaScript吗?而且JavaScript也可以写在ActionScript里面,干嘛不从这里打点主意呢?

很好,actionscript.org上就有一篇很好的文章讲怎么在ActionScript中注入JavaScript或者VBScript。不过,显然是有人和我们一样“挑剔”,利用这个写了一个用来改变自身大小的swf,demo在这里,这里有详细的说明和源码下载...

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://fdream.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);

谢谢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版本。

相关截图:

VeryCD的插件发到豆瓣上后,NullPointer说这个不错,要是能再整一个电子书的就好了,我说没有找到很好的电子书下载网站,所以没有办法,他立即给我提供了一个很好的电子书搜索引擎,正好有了第一个插件后,改改就能做第二个插件了,于是就接着写了这个。

当你浏览书籍时,可以在豆瓣右侧顶部显示从Google搜索到的电子书下载信息,点击即可打开相应的下载页面。顶部的有分类搜索结果,点击即可在相应的分类中搜索相关下载信息。默认显示三个搜索结果,点击“显示更多”按钮,可以显示至多十条信息。

截图:

这个灵感来自于师弟freefcw,因为自己也经常泡豆瓣,泡的时候又喜欢跑到VeryCD上搜音乐搜电影,于是就写了这么一个插件。这个插件是干什么的呢?

当你浏览音乐专辑或者电影时,会在右侧顶部显示VeryCD上的相关下载信息,点击即可打开相应的下载页面。顶部的有分类搜索结果,点击即可在相应的分类中搜索相关下载信息。默认显示三个搜索结果,点击“显示更多”按钮,可以显示至多十条信息。

截图如下:

还原百度MP3真实地址
9 多云 2009-1
Fdream 发表于 Ajax Web, 已被阅读 1634 次评论 0 条
关键词:javascript

纯属无聊,本来只是想写个豆瓣的插件,看到歌曲列表以后就可以在线试听或者下载,不过不能直接从搜索结果列表拿到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;
}

1 2 3 4 5 6 7 8 9 1084
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.1250032 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号