Chrome擴(kuò)展插件crx助力網(wǎng)絡(luò)搶票
又到了一年一度的中國春運(yùn),今年的網(wǎng)絡(luò)訂票(12306.cn)有好多的故事上演,網(wǎng)絡(luò)訂票就離不開瀏覽器,主流的瀏覽器有IE,Chrome,F(xiàn)irefox,Safari,搜狗,傲游,獵豹等等,目前主要是WebKit內(nèi)核和IE的Trident內(nèi)核兩大類以及國內(nèi)大量的雙核瀏覽器。
作為互聯(lián)網(wǎng)“入口”之爭的戰(zhàn)略高地,瀏覽器向來是巨頭們決勝未來的重要砝碼,同時也會大大的影響了用戶的使用,本次的春運(yùn)刷票瀏覽器插件全是清一色WebKit內(nèi)核Google Chrome插件,讓普羅大眾近距離的體驗(yàn)Chrome的威力,從這個角度來說,IE又?jǐn)×?,雖然12306網(wǎng)站設(shè)計(jì)的只支持IE,結(jié)果大量有IE的用戶發(fā)現(xiàn)剛開始放票就沒票了,都被Webkit刷走了,實(shí)在傷不起。
下面我使用的一個訂票插件,這個插件目前還可以用的,只是鐵道部已經(jīng)約談了各大瀏覽器的插件作者,這里我也不便多介紹,下面主要是想普及chrome的 crx插件。
Chrome的擴(kuò)展文件的擴(kuò)展名(后綴)為.crx,Google Chrome可以自動關(guān)聯(lián)這種擴(kuò)展名為.crx的文件。事實(shí)上,當(dāng)我們將crx文件使用winrar或者是7-zip等解壓軟件解開之后就可以發(fā)現(xiàn),其中至少包含兩個文件,一個文件是擴(kuò)展名為.js的腳本文件,另一個是文件名為manifest.json的文件,部分可能還會包含一個css文件、圖片文件和HTML網(wǎng)頁文件,但是.js腳本文件和manifest.json是絕不可少的兩個部分。
一個Chrome擴(kuò)展是由HTML、CSS、JavaScript、圖片等文件壓縮而成。擴(kuò)展實(shí)際上就是一個web頁面,你可以用任何瀏覽器提供給web頁面的接口,從XMLHttpRequest 到JSON ,再到HTML本地緩存都可以使用。每個擴(kuò)展由下列文件組成:
- 一個manifest文件(主文件,json格式)
- 至少一個HTML文件(主題可以沒有HTML文件)
- JavaScript文件 (可選,非必須)
- 任何其他你需要的文件(比如圖片)
當(dāng)你開發(fā)一個擴(kuò)展的時候,需要把這些文件放在一個文件夾里,當(dāng)你發(fā)布這個擴(kuò)展的時候,這個文件夾下的所有文件將會打包成一個特殊后綴.crx的ZIP文件。下面這個是12306的訂票助手的插件內(nèi)容,把crx改成zip或者rar,然后用7-zip解壓縮后就可以看到了。
然后打開chrome://settings/extensions,點(diǎn)擊上方的“載入正在開發(fā)的擴(kuò)展程序”,選中你剛剛解壓出來的那一整個文件夾(不要選里面的子文件夾)然后點(diǎn)確定,就直接安裝成功了?。ㄗ⒁獍惭b成功以后不要刪除在電腦上解壓好的那個文件夾,也不要更改那個文件夾的位置,不然就又相當(dāng)于卸載了……)
主文件取名manifest.json,用來描述這個擴(kuò)展,包括擴(kuò)展名字、版本、調(diào)用的文件、可用域等信息。下面我們來看看manifest.json這個文件里都有什么東西,用記事本打開manifest.json這個文件,可以發(fā)現(xiàn)該文件里有如下信息:
這個擴(kuò)展可以調(diào)用12306.cn的內(nèi)容
如果你插件需要和網(wǎng)頁交互,那么他就需要一個內(nèi)容腳本(Content scripts),內(nèi)容腳本常由JavaScript編寫,會在網(wǎng)頁載入完成后調(diào)用。完全可以把內(nèi)容腳本看做是網(wǎng)頁的一部分,而不是擴(kuò)展的一部分。
內(nèi)容腳本可以訪問到當(dāng)前瀏覽器瀏覽的頁面,而且還可以改變網(wǎng)頁的顯示方式(油猴腳本就是內(nèi)容腳本)。下面的圖片中,內(nèi)容腳本可以讀取、更改網(wǎng)頁的DOM。 這個插件的內(nèi)容腳本就是12306_ticket_helper.user,在這個腳本里就可以干很多搶票軟件要做的東西了,自己也可以在這個基礎(chǔ)上完善。所以搞技術(shù)的你我一定可以沖破鐵道部的封鎖拿到票高興回家。