google reader 是google的另一個AJAX應用,以前前一直誤以為是個瀏覽器插件,因此沒有留意。昨天在網友Jared提醒下去開通了一個才見識了一吧。匆匆crack了一下代碼,因為剛剛開通上面也沒有多少數據,隨便晃兩眼吧。
首先登錄readr,把reader頁面另存到本地,得到一個主文件(htm),一個腳本,和一個css樣式表。
把html文件中的這行去掉:
<!-- saved from url=(0041)http://www.google.com/reader/things/intro -->
這樣xmlhttp就可以無限制的訪問網絡資源了。
reader引用了一個莫名其妙的js文件,用數字做文件名,不知道名字是不是經常變化的,我昨天下載的時候的名字是:
uri這樣的標識符都保留下來了,充分說明google沒有刻意的混淆過代碼。我們就從這里入手:
;D.prototype.Hb=function(a){
if(this.overrideCache&&a.indexOf("?")==-1){
var b=(new Date()).getTime();a=a+"?"+b
}
this.uri=" 是為了讓xmlhttp能夠正確的找到網站。
window.open(this.uri);是為了同時把xmlhttp試圖訪問的內容用新窗口打開來看看。
carck后的腳本在這里 http://www.aygfsteel.com/Files/emu/874310214-main.rar 。主頁面上有我的個人信息,就不上傳完整的本地可運行版本了。
保存腳本后重新打開htm頁面,可以看到,在頁面顯示出來的過程中加載了兩個動態的xml數據源。
http://www.google.com/reader/atom/user/*********************/state/com.google/reading-list?n=20
http://www.google.com/reader/atom/user/********************%2Fpref%2Fcom.google%2Fprefs?complete=true
中間的星號部分是我的用戶編號,就不貼出來了。大家自己試驗的時候可以看到自己的。
這兩個數據原在瀏覽器窗口中打開的時候非常出乎意料的,居然返回的是兩個xml文件!之前我多次在說google推行AJAH,看來怪錯好人了,google也用正宗的AJAX的。
-<feed xmlns="http://www.w3.org/2005/Atom">
我剛剛開通reader,里面都還什么數據都沒有呢。你看到什么了呢?