谷歌浏览器chrome的扩展功能已经成熟,那时没事就写个扩展玩玩,写了一大堆,现在很多自己都没用了。
现在介绍下我写的几个自己比较喜欢的扩展和其实现方式。若对chrome扩展开发不了解,可看这里的官方英文文档。而chrome迷最近也启动了文档翻译过程。
1. 中国天气预报与万年历
通过名字可以看出,这个扩展为中国人服务,主要提供天气预报和万年历,万年历有农历。
这是我写的扩展里最受欢迎的一个,甚至在所有扩展的Top rated排名里目前也是第5名。
受欢迎原因我想应该是这么几个原因:
1. 预报较准确。因为用的中国天气网的数据,所以估计预报国内天气是最准确的了。
2. 速度快。因为我启动时去中国天气网取数据后每隔一定时间(默认20分钟)也取一次数据,于是在点击按钮时我是用的现有数据直接构造弹出页,所以非常快。(事实上,我在取数据的时候就把弹出页要显示的html已经在后台页构造好了。)
2. 眼睛
这个扩展只是好玩的。眼睛会随着鼠标转动,可以安装一对,这里是另一个。很久以前在linux上看到这种任务栏眼睛的,很是激动,然后便用.NET写了一个类似的任务栏眼睛跟着转的,现在chrome出来了又不忘移到chrome来。主要实现就是通过用户脚本获取鼠标位置传送给后台页,后台页计算眼睛与鼠标的距离和角度,用canvas画出来,最后绘到图标按钮上。
本来打算下一步允许用户制作自己的眼睛图像的(这样便可以把自己的眼睛放上去),因为画眼睛是基于图像文件,所以做到这一点很容易,但由于使用的人一直很少,搞得自己没激情继续下去了。估计新鲜感早就过了。
3. 搜索关键字快速定位
这个扩展类似于Google Quick Scroll扩展:“在您点击 Google 的搜索结果后,网页的右下角会显示 Google Quick Scroll,其中列出了该网页中与您的查询相关的一段或多段文字。点击文字即可转至该网页的相应部分。”只是我这个扩展不仅仅对google有效,也对baidu这些其他搜索引擎有效,也可以自定义。且我这个是基于单词的,不像Google Quick Scrool那样智能。
这个扩展的基本原理就是通过用户脚本获取document.referrer,判断当前页是否从搜索引擎过来,如果是,获取其关键字,然后对关键字做一定解析,最后用jQuery为文档中的关键字着上色。
在获取关键字的时候有个编码问题,utf8编码的关键字可以用decodeURIComponent方法解码,但gb2312编码的则没有相应的方法,于是我用.NET程序生成了一个gb2312的编码表,解决像百度这种gb2312编码的问题。
4. 便利搜索扩展
这个扩展主要用来替代右键菜单,弹出一个自定义的搜索菜单列表。方便需要使用不同搜索引擎的人。这个扩展最近也没太维护了,用的人也不多,而对自己来讲也比较够用了。
这个扩展也包含了“搜索关键字快速定位”的功能。
其他还有:
ColorChooser用来快速选择颜色方便网页开发者使用。
get text size获取选中区域的文字数量。
Format Link Target格式化连接目标。