正 文:
Chrome浏览器的市场份额在欧美已经进入了前三,还曾一度超过IE的份额位列第一。在国内,Chrome浏览器的使用者也是与日俱增,谷歌的全新网络浏览器Chrome以其简单,快捷的特点俘获了众多G粉的心。
看看众多浏览器开发公司,如搜狗、360、腾讯等浏览器均集成了Chrome的核心webkit,就知道chrome的影响力正在逐步攀升。
在平时使用谷歌搜索时,因为谷歌对搜索结果进行了跳转,比如我们在谷歌搜索“飘易”,第一个结果就是我的博客,但是看一下它的链接地址,却是:
http://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CB8QFjAA&url=http%3A%2F%2Fwww.piaoyi.org%2F&ei=ngKKUKuwAYrhiwKgzYCQDA&usg=AFQjCNGpboePN0Q1N714m47QA0LjnVypJQ
为什么会这样?因为使用了加密的https网址
https://www.google.com.hk/ 进行搜索,这个时候是无法跟踪来源的,所以Google对网址进行了一次跳转以便统计搜索行为。当使用普通的 http://www.google.com.hk/ 进行搜索时,搜索结果是直接链接,没有中转链接。飘易目前观察到的是这样。
回到正题。我在平时搜索的时候,由于各种不可控因素,经常会遇到google的中转链接打不开的情况,即使Google要跳转的网址可以打开,但是却死在了google的中转链接上。我相信也有不少人遇到这样的情况。
飘易大致浏览了下Google Chrome开发者中心:
http://developer.chrome.com/extensions/devguide.html,花了点时间开发出了一款Chrome插件“
谷歌网址发现者”,这个插件可以自动检测google中转链接,然后不向谷歌服务器发送任何请求消息,直接请求目标网页。这个“谷歌网址发现者”扩展的下载地址在本文的结尾处。
比如这样的中转链接:
http://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CB8QFjAA&url=http%3A%2F%2Fwww.piaoyi.org%2F&ei=ngKKUKuwAYrhiwKgzYCQDA&usg=AFQjCNGpboePN0Q1N714m47QA0LjnVypJQ
我们只要检测当chrome请求的网址是 http://www.google.com.hk/url 的时候,就自动用正则取出 url= 的值,然后直接跳转到这个url即可。
查看chrome开发者中心关于
chrome.webRequest的介绍,我们知道 :
chrome.webRequest.onBeforeRequestFires when a request is about to occur. This event is sent before any TCP connection is made and can be used to cancel or redirect requests.
意思就是 chrome.webRequest.onBeforeRequest 这个事件发生任何TCP连接之前,可以用于取消或转移请求网址。这个就是我们需要用到的事件。
使用方法如下:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
这里要说明一下,首次使用Google Chrome开发扩展,需要向Google支付一笔5美元的开发者注册费用,这个是一次性收费,开通后,就可以自由发布扩展并托管在webstore应用商店里了。飘易采用的招行信用卡,绑定一下google wallet电子钱包,然后支付了5美元即可。
【谷歌网址发现者】扩展下载地址:
https://chrome.google.com/webstore/detail/mmganefddlmbaiebejoioakcgcimbgla使用方法,用chrome浏览器打开上述链接即可安装该扩展。安装扩展后就可以从Google搜索结果直接跳转到目标网站,不怕被墙了后打不开目标网站了。注意:如果目标网站本来就打不开,使用这个扩展也不会打得开。
【参考资料】:
1、Google Chrome extensions 开发文档
http://developer.chrome.com/extensions/devguide.html2、360 Chrome 开发文档(中文)(翻译google的)
http://open.chrome.360.cn/extension_dev/overview.html3、开发者信息中心(管理你的扩展)
https://chrome.google.com/webstore/developer/dashboard?hl=zh-CN