成都近幾天的天氣在其40度高溫的肆虐後又峰迴路轉淫雨霏霏。真不知道這樣的涼爽能持續多久,不過,躺在床上,卻更加珍惜這難能可貴的天氣。最近常常流連於校內(人人)、CSDN、Qtcn還有其他一些forum,也註冊了兩個以上的郵箱(QQ、163、Gmail),經常因為專註於某一篇文章或某一件事而忘記其他,想想,也厭煩了登陸各大網站時要求輸入的驗證資訊。在成都陰雨天的滋潤下,不免萌生了一個想法,做一個登陸助手,來改善自己的生活。
以前對於網站登入的理解局限在CGI的方法上,而且也未有深入嘗試。現在想來,發現許多網站的登入欄都留有JQuery的痕迹,所以打算嘗試一下。先貼2個最初的介面設計
零零碎碎的看了一些關於jquery和表單的資料,發現幾乎所有網站的登入都沿用了form的action形式,如google的:<form id="form" action="https://www.google.com/accounts/LoginAuth" method="post">...</form>,人人網的<form id="form" action="http://login.renren.com/Login.do">...</form>.對於像CSDN、Qtcn這類的blog和論壇則採用了驗證碼的形式,而關於驗證碼的擷取方式還沒有研究,不過猜想和時間有關(因為代碼中有如下的資訊(CSDN)<a href="#" onclick="document.getElementById('MzImgExpPwd').src='ShowExPwd.aspx?temp='+ (new Date().getTime().toString(36)); return false">),而Qtcn則以ck.php為路徑下載驗證碼的資訊。
對於不需要輸入驗證碼的網站,可以簡單的類比出表單登入的動作,這裡基於jquery來實現。
首先,我們需要jquery lib,不大,只有幾十k,可以google搜尋下。然後是類比表單提取的操作,較為簡單的js寫法為
1$(document).ready(function() {
2$('form').hide();
3$('input').hide();
4$('#form').click(function(){
5 form.submit(); //類比出form的submit事件,前提是form裡已經有user和password
6});
7$('#form').click();
8
9});
對於QT端,我們在雙擊表徵圖後隱式開啟網頁web.html,裡麵包含了登陸所需的使用者名稱和密碼,而且在登入時,為了不拖遝,我們在上面的js代碼中將它隱藏(2、3行代碼)。其中4、7行代碼類比了表單提交按鈕的點擊事件,也可以不需要,直接讓form提交表單。
在PC端登陸時遺留的問題為:因為瀏覽器的控制項限制,每次登陸時都提示是否載入ActiveX。
另外,登陸的使用者名稱和密碼並沒有加密,所以在登入某些網站時,會在地址欄中顯示出來
(待續)