为 IE8 写一个转跳加速器
烦恼
是不是经常遇到一些文章,文中提及了一些外部资源却不给出链接,或者给出地址又不做成超级链接呢?这样一来要去参观一下这些资源的话,我们就先得复制一下地址,然后粘贴到地址栏,再按回车!尽管你使用的是 Google Chrome 可以使用“粘贴并转到”,但是步骤仍然繁琐,不是吗?
我就实在忍受不了啦,我想,如果能搞一个简单的东西,实现直接转跳多好啊,我注意到 IE8 有个新的“加速器”功能,那么是不是可以做一个加速器来实现呢?看起来好像可以哦!
关于 IE8 加速器的简介,可以看这里,就不多说了。
解决
准备工作
我搜索了一下,看了一些加速器开发的文章,最终还是觉得这篇 MSDN 文档最有用。仔细阅读了一下,发现加速器有 homepageUrl 的限制,也就是说,所有请求的域名是固定不能改变的,这对于我们想要转跳到不同的地址这个要求,无疑等于关上了大门。等一下,真的是这样吗?我们可以搞一个服务,接受一个地址请求,然后重定向就行了,不是么?
与其自己建一个,不如用现成的!那个现成的就是 Google 的“手气不错”!
接下来就是看看“手气不错”是怎么工作的了(知道的请无视):
打开 Google 首页,直接点击 I'm Feeling Lucky 这个按钮,就会转跳到这个地址:
http://ipv6.google.com/search?hl=en&source=hp&q=&btnI=I%27m+Feeling+Lucky&aq=f&aql=&aqi=&oq=
仔细看一下,其实有用的就是 btnI=I'm… 这一串东西了,表明按的是“手气不错”这个按钮,前面就是关键字,平时我们搜索的时候,关键字都赋给 q 的,这个应该没有问题的,可以改一改验证一下。
加速器描述
现在知道怎么跟“手气不错”打交道了,接着就是按照文档写描述加速器的 XML 了:
<?xml version="1.0" encoding="UTF-8"?> <openServiceDescription xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0"> <homepageUrl>http://ipv6.google.com</homepageUrl> <display> <name>Luckily jump to</name> <icon>http://ipv6.google.com/favicon.ico</icon> <description>Perform "feeling lucky" jump!</description> </display> <activity category="Jump"> <activityAction context="selection"> <execute method="get" action="http://ipv6.google.com/search?btnI=I%27m+Feeling+Lucky&q={selection}"/> </activityAction> </activity> </openServiceDescription>
内容非常简单,照着文档写就行了。
安装
文档写着,使用 window.external.AddService('XML描述文件路径') 这句脚本即可将它添加到浏览器了,我在本地运行却收到了错误提示:
解决的办法有两个:
一、自己在VS新建一个网站,添加XML文件(这里是 Lucky.xml),然后把 default.aspx 的 body 标签的内容换成如下代码:
<button onclick="window.external.AddService('lucky.xml')" style="height: 74px; width: 139px">Add Lucky Jumper</button>
然后运行网站,点击按钮即可安装。
二、上传到 IE Add-ons Gallery,在那里注册一个账号,完成 Upload 即可分享。我已经上传了,地址是:
http://www.ieaddons.com/en/details/other/Luckily_jump_to/
在那里点击 Add to Internet Explorer 按钮即可安装。
总结
自己动手,丰衣足食!
http://DiryBoy.cnblogs.com