收藏或加星标

我使用del.icio.us来收藏我感兴趣的页面;我使用google的阅读器来订阅weblog,对我感觉感兴趣的文章加星标。把感兴趣的东西放在两个不同的地方,还真是不方便啊。而且,我不想再增加使用其它的服务站点来解决这个问题,那样把问题搞复杂了。不知道没有简单的方法。

Google的IMAP

我昨天通过Thunderbird使用了一下Google提供的IMAP服务,发现几个问题。

在Gmail中,是可以对邮件进行不同的标记的,以达到分类的效果。如果使用IMAP是,这些分类会被当成目录进行管理,如果分类名出现"/"符号,Gmail将会把分类名分成多层目录来处理。但是,当接收邮件时,会把同一封邮件下载多份,原因是Gmail里的收件箱也是个目录,所有的邮件都会显示在这里,而许多被标签过的邮件又在标签文件夹里显示一份,这里就出现了某封邮件出现在多个目录中,造成了大量的浪费。

也有可能是我不经常使用IMAP的原因吧,有许多特性还不是很发解。

Firefox3 Alpha5

这个版本在前几天我已经用上了,但没用多久。Places的完成度还不是很高。从发布的releasenotes来看,这次主要的改变是Bookmarks开始使用Places了,这样Bookmarks就是使用sqlite来存储的,其它的就没有什么。从原来的计划来看,这个alpha版又有许多功能被移动到了下一个版本。希望不要有alpha7啊。

  • Places的Bookmarks部分被开启。
  • 新的崩溃报告系统Breakpad。在OSX被默认开启,大约50%的Windows被开启(?),还没有提供Linux版本。
  • 新的基于Javascript的密码管理器。
  • 关于Mac的更新。
  • Gecko内核 1.9 bug修复

Custom Search Engine

前天,我又开通了google的一项服务,Custom Search Engine。这项服务其实去年就推出了,只是我没有看到而已。现在还在摸这个东西,好象还是点复杂的,主要是英文太多了。。。使用这种Engine,你可以自已指定搜索的范围。而且,这是Google Co-op平台的一部分,还有其它两部分:Subscribed Link、Topics。

Gonefish.cn Search主页

javascript检测java版本

有时候,会需要通过浏览器来检测当前机器的Java版本。在网上还未找到解决方法,但有人问到过,java的官方网站可以检测出来。通过分析一个在线教室的网站,找到解决方法:

首先,判断浏览器是否安装java的浏览器插件。

<script type="text/javascript">
    var isIE           = "false";

    var javawsInstalled = 0;

        if (navigator.mimeTypes && navigator.mimeTypes.length) {
            x = navigator.mimeTypes['application/x-java-jnlp-file'];
            if (x) {
                javawsInstalled = 1;
            }
        } else {
            isIE = "true";
        }
</script>
<script type="text/vbscript">
        on error resume next
        If isIE = "true" Then
          If Not(IsObject(CreateObject("JavaWebStart.IsInstalled"))) Then
              javawsInstalled = 0
          Else
              javawsInstalled = 1
          End If
        End If
</script> 

如果,已经安装了java浏览器插件,就在当前的页面里嵌入一个applet,通过这个applet来显示Java的版本。至于这个.jar的包,可以到那个网站去下载。

javascript检测弹出窗口

最近,有个需求是就是检测用户的浏览器是否启用了弹出窗口功能。还好,找到了个比较靠谱的解决方法。原文在,其原理是分析了MSN Web Messenger的js。

其中有部分我没看太懂,就是IsYBI(),这个函数里面创建了new ActiveXObject("YBIOCtrl.CompanionBHO"),我不知道这到底创建的是什么?变量spbw保存了是否启用了弹出窗口功能,true表示启用了弹出窗口。原理应该还是创建弹出窗口,并对弹出窗口进行检测。

Firefox未来

最近有一篇文章指出Firefox越来越臃肿。在我看来,Firefox的强大是正确的方向,随着技术不断得发展,现在通过浏览器可以作更多的事情。对某一项技术的支持将会对浏览器产生很大影响。从最新的Firefox3的开发功能来看,firefox开始与web services相结合了。最新开发的places支持远程同步,这个功能现在可以使用google提供的插件来实现。

我对浏览器和手机的未来非常感兴趣。随着手机技术的不断发展,使用手机来浏览信息将会是再正常不过的事情了,而且随时就可以查看。而浏览器将被赋于更多的功能,也许也以不叫浏览器了,或者别的什么。但有一点永远都基于web的。 

javascript检测flash版本原理

有时候会需要在客户端检测flash版本。在js中navigator对象,用于显示浏览器的各种个参数。比较重要的是navigator.userAgent,它提供浏览器的UA信息。navigator.plugins显示所以浏览器的插件信息。但对ie来说,你就别指望了。但还是有其它方法来判断一个ActiveXObject对象是否存在的。

p = navigator.plugins;
        if (p && p.length) {
            for (var i = 0; i < p.length; i++) {
                if (p[i].name.indexOf('Shockwave Flash') > -1) {
                    alert(p[i].description.split('Shockwave ')[1]);
                    break;
                }
            }
        } else if (window.ActiveXObject) {
            for (var j=9;j>=6;j–) {
                   try {  
                    var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+j+"');");
                    if (fl) {
                        f=j + '.0';
                        break;
                    }
                   }
                   catch(e) {}
              }
            alert(f);
        }

原理:

首先,判断navigator.plugins是否为空,如果是空的话就当IE处理啦。接着处理非IE类的,就是编历navigator.plugins数组,查找名字包含Shockwave Flash的项,然后把前面的Shockwave 截取掉;IE部分的原理是创建ActiveXObject来判断是哪一个版本的flash。使用eval动态的创建不同的版本的ShockwaveFlash.ShockwaveFlash对象,哪一个创建成功了就是什么版本了。