<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>WWW</title>
</head>
<body>
检测间隔(单位ms),既是隔多久检测一次:<input type=text id=checkms value=1><BR>
检测代码(称为检测代码),存在,返回1;不存在返回非1;弹出窗口对象是win<textarea id=checkjs style="width:100%; height:100px;">
if (win.document.getElementById("q"))
{
showText("找到了google的搜索输入框,返回true");
return 1;
}else
{
showText("还未找到,返回false;");
return false;
}
</textarea><BR>
存在后处理方法代码(称为操作代码):弹出窗口对象是win<textarea id=findjs style="width:100%; height:100px;">
win.document.getElementById("q").value = "找到你了.输入" + new Date();
showText("找到输入框后,现在输入字符'找到你了.输入';并点击了搜索按钮!请切换网页查看.");
win.document.getElementById("btnG").click();
</textarea>
其它程序或自己打开的窗口名:<input type=text value=win id=winName><BR>
弹出窗口初始地址:<input type=text value="http://www.google.com" id=url style="width:100%;"><BR>
获取窗口对象(弹窗),如果在上面换了网址,请点.:<input type=button value=弹窗/换url οnclick="getWin(1);"><BR>
检测窗口对象(不存在了,自动弹窗),可直接点,窗口不存在时会自动打开:<input type=button value=开始检测 οnclick="checkWin(this);" id=startcheck><BR>
自动滚屏:<input type=checkbox id=autoroll checked><input type=button value=清屏 οnclick="msg.innerHTML = '';">
<DIV id=msg style="border:1px solid black;width:100%;height:680px; overflow-y:auto; overflow-x:hidden; word-wrap :break-word;" ></DIV>
在下面输入js代码,然后按CTRL+ENTER键运行代码进行测试
<textarea id=jsinput style="width:100%; height:100px;
; word-break:keep-all;overflow:scroll;" οnkeypress="if (event.keyCode == 10
) {eval(this.value)}">
this.value = win.document.body.outerHTML;//点这里后按CTRL+回车键运行这个代码,这个代码的意思是获取win窗口的body源代码
</textarea>
<script>
var win = null;
var checker = null;
function showText(text)
{ //text:传入的字符串;
msg.insertAdjacentHTML("beforeEnd", new Date().toLocaleString() + " " + text + '<hr width=100%>');
if (autoroll.checked) msg.scrollTop = msg.scrollHeight;
//$e("msg").insertAdjacentHTML("afterBegin", text + '<hr width=100%>');
//$e("msg").scrollTop = 0;
}
function getWin(openUrl)
{
try
{
win.document.body;
showText("句柄存在.");
if (openUrl)
{
win.location = url.value;
showText("改了网址为:" + url.value);
}
}catch(E)
{
win = window.open(url.value, winName.value);
showText("句柄不存在,已获取成功.<BR>打开网址:" + url.value);
}
return true;
}
function checkWin(obj)
{
if (obj.value == "开始检测")
{
if (isNaN(checkms.value) || checkms.value < 1)
{
return showText("检测间隔只能填写大于0的整数");
}
getWin();
clearInterval(checker);
showText("正在检测中...<BR>如果要停止请按[停止检测]即可.");
obj.value = "停止检测";
checker = setInterval(
function ()
{
document.title = Math.random() + "@检测进行中..." ;
try
{
var getCheck = eval("(function(){" + checkjs.value + "})()");
if (getCheck == 1)
{
clearInterval(checker);
showText("检测代码返回了["
+ getCheck + "],判定为检测到,取消不停检测.开始执行存在操作方法.");
document.title = "检测完成";
startcheck.value = "开始检测";
try
{
eval("(function(){" + findjs.value + "})()");
showText("操作代码执行完成");
document.title = "操作完成";
}catch(e)
{
showText("操作代码出错,一种情况是页面未载入(可以让程序不停检测直到载入完成)"
+ "或不存在(绝对不会出现的话,修改检测代码),就获取对象导致;"
+ "另种是本身语法出错(修改检测代码).错误信息如后所示:<BR>"
+ e.description
);
}
}else
{
showText("检测代码返回[" +getCheck
+ "]判定未找到;(条件未成立,可以一直运行)或是没有返回值(修改代码).");
}
}catch(E)
{
showText("检测代码出错,一种情况是页面未载入(可以让程序不停检测直到载入完成)"
+ "或不存在(一直检测,或是绝对不会出现的话,修改检测代码),就获取对象导致;"
+ "另种是本身语法出错(修改检测代码).错误信息如后所示:<BR>"
+ E.description
);
}
}
,
checkms.value
);
}else
{
clearInterval(checker);
showText("检测被停止了.");
obj.value = "开始检测";
}
}
</script>
</body>
</html>