我想根據網站上發生的事情編寫腳本生成器,並且爲此我編寫了基於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上的數據),而無需將我的腳本添加到該文件中,並寫入文件
任何幫助或方向將是偉大的。
聽起來像是你應該寫一個瀏覽器插件,而不是一個網頁。 – epascarello
嗨Epascarello,感謝您的建議,我能夠使用crossrider創建瀏覽器插件,它能夠捕獲獲取和發佈,並且在IE上使用activex,我能夠將捕獲寫入文件。在雅虎和其他網站上測試,只需要將它們添加到受信任的站點,這是可以接受的。然而,如果頁面有框架集,比如頁眉/正文/頁腳,頁腳正在對正文進行一些操作,我無法在框架集內捕獲框架的帖子?我可以捕獲使用javascript,我嘗試使用self.frames.count,然後parent.frames [index] .document.location.href,但仍然無法捕獲。 –