我想根据网站上发生的事情编写一个脚本生成器,为此我编写了javascript - 基于ajax的脚本生成器,在每个页面上我都包含js文件,并在页面的功能块中submited我调用javascript的函数来启动getElementsByTagName(*)读取页面变量(DOM),在循环之后,我使用ajax将预定义的格式写入文件。
这一切都是针对其运行的同一站点完成的,但现在我需要为任何其他站点实现相同的记录器和脚本生成器,如同在网站上完成并登录到文件,我都不能包含我的脚本放到任何其他外部网站上,也不提交函数调用,然后提交读取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,通过记录DOM元素上的内容,在服务器上执行ajax和写入/更新文件,并发送更多详细信息,包括GET / POST或页面名称等等。
在javascript执行提交为document.forms [0] .submit()之前在页面上调用beginRecording(),以便它可以捕获POST。
我读过关于跨域的ajax,但我仍然不确定如何监控任何外部网站的HTTP(读取GET / POST和页面或URL上的数据)而不将我的脚本添加到该文件中,并写入文件< / p>
任何帮助或方向都会很棒。
答案 0 :(得分:1)
你不能在远程站点上包含javascript,或者监视它的HTTP请求这两件事对安全性来说都是灾难性的......