我想根据网站上发生的事情编写脚本生成器,并且为此我编写了基于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,但仍然无法捕获。 –