又到了一年一度的中国春运,今年的网络订票(12306.cn)有好多的故事上演,网络订票就离不开浏览器,主流的浏览器有IE,Chrome,Firefox,Safari,搜狗,傲游,猎豹等等,目前主要是WebKit内核和IE的Trident内核两大类以及国内大量的双核浏览器。
作为互联网“入口”之争的战略高地,浏览器向来是巨头们决胜未来的重要砝码,同时也会大大的影响了用户的使用,本次的春运刷票浏览器插件全是清一色WebKit内核Google Chrome插件,让普罗大众近距离的体验Chrome的威力,从这个角度来说,IE又败了,虽然12306网站设计的只支持IE,结果大量有IE的用户发现刚开始放票就没票了,都被Webkit刷走了,实在伤不起。
下面我使用的一个订票插件,这个插件目前还可以用的,只是铁道部已经约谈了各大浏览器的插件作者,这里我也不便多介绍,下面主要是想普及chrome的 crx插件。
Chrome的扩展文件的扩展名(后缀)为.crx,Google Chrome可以自动关联这种扩展名为.crx的文件。事实上,当我们将crx文件使用winrar或者是7-zip等解压软件解开之后就可以发现,其中至少包含两个文件,一个文件是扩展名为.js的脚本文件,另一个是文件名为manifest.json的文件,部分可能还会包含一个css文件、图片文件和HTML网页文件,但是.js脚本文件和manifest.json是绝不可少的两个部分。
一个Chrome扩展是由HTML、CSS、JavaScript、图片等文件压缩而成。扩展实际上就是一个web页面,你可以用任何浏览器提供给web页面的接口,从XMLHttpRequest 到JSON ,再到HTML本地缓存都可以使用。每个扩展由下列文件组成:
- 一个manifest文件(主文件,json格式)
- 至少一个HTML文件(主题可以没有HTML文件)
- JavaScript文件 (可选,非必须)
- 任何其他你需要的文件(比如图片)
当你开发一个扩展的时候,需要把这些文件放在一个文件夹里,当你发布这个扩展的时候,这个文件夹下的所有文件将会打包成一个特殊后缀.crx的ZIP文件。下面这个是12306的订票助手的插件内容,把crx改成zip或者rar,然后用7-zip解压缩后就可以看到了。
然后打开chrome://settings/extensions,点击上方的“载入正在开发的扩展程序”,选中你刚刚解压出来的那一整个文件夹(不要选里面的子文件夹)然后点确定,就直接安装成功了!(注意安装成功以后不要删除在电脑上解压好的那个文件夹,也不要更改那个文件夹的位置,不然就又相当于卸载了……)
主文件取名manifest.json,用来描述这个扩展,包括扩展名字、版本、调用的文件、可用域等信息。下面我们来看看manifest.json这个文件里都有什么东西,用记事本打开manifest.json这个文件,可以发现该文件里有如下信息:
这个扩展可以调用12306.cn的内容
如果你插件需要和网页交互,那么他就需要一个内容脚本(Content scripts),内容脚本常由JavaScript编写,会在网页载入完成后调用。完全可以把内容脚本看做是网页的一部分,而不是扩展的一部分。
内容脚本可以访问到当前浏览器浏览的页面,而且还可以改变网页的显示方式(油猴脚本就是内容脚本)。下面的图片中,内容脚本可以读取、更改网页的DOM。 这个插件的内容脚本就是12306_ticket_helper.user,在这个脚本里就可以干很多抢票软件要做的东西了,自己也可以在这个基础上完善。所以搞技术的你我一定可以冲破铁道部的封锁拿到票高兴回家。