我想根据网站上发生的事情编写一个脚本生成器,为此我编写了javascript - 基于ajax的脚本生成器,其中在每个页面上我都包含js文件,并且在提交页面的页面的功能块中,我调用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或页面名称等。
beginRecording() 在 javascript 以 document.forms[0].submit() 提交之前在页面上调用,以便它可以捕获 POST。
我阅读了有关跨域ajax的信息,但我仍然不确定如何在不将脚本添加到该文件的情况下监视任何外部网站的HTTP(读取GET/POST和页面或URL上的数据),并写入文件
任何帮助或指导都会很棒。
您不能在远程站点上包含javascript,也不能监视其HTTP请求 这两件事对安全都是灾难性的......