2012-06-20 137 views
0

我想根據網站上發生的事情編寫腳本生成器,並且爲此我編寫了基於javascript-ajax的腳本生成器,其中在每個頁面上我都包含js文件並在函數內頁面塊被submited我調用javascript的函數來啓動getElementsByTagName(*)讀取頁面變量(DOM),並在循環完成後,使用ajax將預定義的格式寫入文件。監視外部網站的HTTP請求

這一切都是爲它運行的同一個站點完成的,但現在當我需要爲任何其他站點實現相同的記錄器和腳本生成器時,就如同在網站上做了什麼並登錄到文件一樣,我也不能包括我的腳本到任何其他外部網站,也沒有提交函數調用之前提交閱讀DOM並投入文件。

這裏是JS

beginRecording(); 

function beginRecording() 
{ 
    if(RECORD_BIT == 1) 
    { 
     processPageData(); 
    } 
} 

function processPageData() 
{ 
    var i 
    var obj = document 
    var posArray = new Array(); 
    var allElement = obj.getElementsByTagName("*"); 
    var dataArrayString = ""; 

    for(i=0; i < allElement.length; i++) 
    { 
    if (allElement[i].getAttribute('id') != null && allElement[i].getAttribute('id') != "") 
    { 
     posArray[posArray.length] = allElement[i].getAttribute('id'); 
    } 
} 

for(i = 0 ; i < posArray.length ; i++) 
{ 
    dataArrayString = dataArrayString+"SET "+posArray[i]+"="+getValueFromPage(posArray[i]); 
} 



    writePostData(dataArrayString); 

} 

功能writePostData啞代碼,做AJAX和寫入/更新登錄什麼DOM元素在服務器上的文件,我送情侶的更多細節liek GET/POST或頁面名稱等。

beginRecording()在JavaScript之前在頁面上調用提交爲document.forms [0] .submit(),以便它可以捕獲POST。

我讀了關於跨域ajax,但我仍然不確定如何監控任何外部網站的HTTP(讀取GET/POST和頁面或URL上的數據),而無需將我的腳本添加到該文件中,並寫入文件

任何幫助或方向將是偉大的。

+1

聽起來像是你應該寫一個瀏覽器插件,而不是一個網頁。 – epascarello

+0

嗨Epascarello,感謝您的建議,我能夠使用crossrider創建瀏覽器插件,它能夠捕獲獲取和發佈,並且在IE上使用activex,我能夠將捕獲寫入文件。在雅虎和其他網站上測試,只需要將它們添加到受信任的站點,這是可以接受的。然而,如果頁面有框架集,比如頁眉/正文/頁腳,頁腳正在對正文進行一些操作,我無法在框架集內捕獲框架的帖子?我可以捕獲使用javascript,我嘗試使用self.frames.count,然後parent.frames [index] .document.location.href,但仍然無法捕獲。 –

回答

1

您不能在遠程站點上的JavaScript,或監視它的HTTP請求,這兩點都將是災難性安全...

+0

感謝您的回覆,我知道我無法將腳本注入到其他網站,但是由於Firefox甚至無法捕獲POST數據,並且我可以在net-> html->下看到firebug,並在post標籤下展開post請求。 如果我嚴格使用firebug監控,我可以捕獲POST數據或POST/GET請求什麼是由螢火蟲記錄? –

+0

你必須建立一個firefox擴展來做到這一點,這些信息不可用於一般網站 - 用戶必須選擇安裝你的建議。你究竟想在這裏完成什麼?也許我們可以提出一個更好的方法來獲得你想要的結果。 –

+0

感謝您的回覆,我們有一個響應監控工具,它可以反覆監控預定義的操作集並監控響應時間並生成圖表,以便在整天內演示操作需要多長時間併爲其報表生成圖形,但是這個腳本告訴你該做什麼,比如設置username = x password = y並且在這個IP上發佈http,目前需要手動編寫,爲此你需要知道輸入參數,它們的id和value用戶想要反覆測試,但是爲了生成該腳本容易出錯,所以我們希望在導航站點時使用記錄器 –