高分求解:如何自动点击执行alert()出现的确定按钮,而无须人为操作。

onetop 2005-08-27 01:59:29
有二个html页面: 分别是 A.htm 和B.htm

A.htm的主要内容如下:
<HTML>
<HEAD>
<TITLE>A.htm</TITLE>
<meta http-equiv="Refresh" content="1;url=./A.htm">
</HEAD>
<body>
test
<table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><iframe src="./B.htm" scrolling="yes"></iframe></td>
</tr>
</table>
</body>
</HTML>

B.htm的主要内容如下:
...........
<form name="bform" action="http://www.xxx.com/abc.jsp" method="post">
...........
</form>
...........
<script>
document.bform.submit();
</script>
(B.htm一运行会自动提交表单到 http://www.xxx.com/abc.asp ; 而这个abc.asp 非本地的,我无法控制,以及无法修改上面的代码的。)

利用上面A.htm和B.htm我已经实现了让B.htm每隔一秒钟做一次表单提交操作。但是当http://www.xxx.com/abc.asp 在接受B.htm表单提交时,如果作一些判断,并出现alert()提示时。我上面设计的html和javascript程序就无法自动每隔一秒钟做一次表单提交了,页面停在那里等待人为点击alert的确认按钮了。

我想让html和javascript自动判断,如果在B.htm的form submit到http://www.xxx.com/abc.asp 时如果有alert出现,程序自动点击确认,说穿了我要的是不管有没有alert出现,不要影响我程序"让B.htm每隔一秒钟做一次表单提交操作"
...全文
3230 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
onetop 2005-08-31
  • 打赏
  • 举报
回复
up
ronger924 2005-08-31
  • 打赏
  • 举报
回复
好象不行吧。
不过用xmlhttp提交然后解析结果到是一个不错的办法。
至少可以实现你想要的结果。
那样alert()根本就不会被运行。

//////////////////////////////
>我倒想起来一个办法,重载alert函数
><script language=javascript>
>function window.alert(str){
>//这里为空
>}
是不是学OO玩过火了,测试过了么?不要毒害别人啊。
qidizi 2005-08-30
  • 打赏
  • 举报
回复
//帮他介绍下代码,不错,想法!
//在控制页建一个框架,然后把提交页在这个框的非模式窗口打开,它会弹出确定,
//说明你提交成功,
//刷新框,非模式窗口自动关闭,IE自己来,
//它会强制关闭确定
//重复上面

<iframe style="display:" name=if0 ></iframe>
<input type=button value="autoRequest" onclick="autoRequest();"><br>
<script language=javascript >
function autoRequest()
{
if0.showModelessDialog("javascript:alert();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
setTimeout("if0.location.reload();setTimeout('autoRequest();',10);",3000);
}
</script>

//有一事想不能,为什么当那个确定得到焦点时复制到的内容会是下面的?
---------------------------
Microsoft Internet Explorer
---------------------------

---------------------------
确定
---------------------------
onetop 2005-08-30
  • 打赏
  • 举报
回复
cxz7531(大花猫) : 明显没看我上面说的要求! 前提已经写得很明的了,还在搞什么重载。!

JK_10000(JK): 感谢! jk 你的确是一个高手! 佩服。先给大伙们欣赏一下你的杰作,而后在这二天我会结贴。另外为了感谢你的高水平表现,我会再另开一个贴子,再给你送分!
csdntzg 2005-08-30
  • 打赏
  • 举报
回复
精,收藏一下
cxz7531 2005-08-30
  • 打赏
  • 举报
回复
我倒想起来一个办法,重载alert函数
<script language=javascript>
function window.alert(str){
//这里为空
}
alert("fffffff");
</script>
把重载后的alert函数定义function window.alert(str){}放到一个公共的js文件中 就再不受alert的麻烦了

如果还要提示的话,采用这样的办法定义
function window.alert(str){
// 在这里打开一个模式对话框 显示str字符串 延时 20ms关闭 即可
}



precipitant 2005-08-30
  • 打赏
  • 举报
回复
测了一下,方法不错。很巧妙。。。。。。

-------------
a.htm
-------------
<iframe style="display:none" name=if0 ></iframe>
<input type=button value="autoRequest" onclick="autoRequest();"><br>
<script language=javascript >
function autoRequest()
{
if0.showModelessDialog("C:/b.htm","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
setTimeout("if0.location.reload();",3000);
}
</script>

---------------
c:\b.htm
---------------

<script>
alert("request at "+new Date());
</script>

可以看出JK兄的脚本水平已经达到了极致。
JK_10000 2005-08-30
  • 打赏
  • 举报
回复
回复人: qidizi(qidizi) ( ) 信誉:100 2005-08-30 11:22:00 得分: 0
---也不知是怎么回事

回复人: onetop(玩极) ( ) 信誉:99 2005-08-30 14:27:00 得分: 0
---缓存问题,在url后带个随机数就可以解决

回复人: mrshelly(Shelly) ( ) 信誉:100 2005-08-30 14:29:00 得分: 0
也应该可以达到效果,应该更符合楼主要求
mrshelly 2005-08-30
  • 打赏
  • 举报
回复
XMLHTTP
HTTP 的 Socket
onetop 2005-08-30
  • 打赏
  • 举报
回复
to JK_10000(JK): 问题似乎解决了!
但是我一测试,还发现一个问题.
继续上面的假设,我按照 JK_10000 提供的方法改进程序后。abc.jsp 里如果有动态操作代码的话,只会执行一次,在后面的 showModelessDialog() 只是调用缓存的了。当然把a.htm 关掉后,重新打开过,又会真正的执行一次。(除非我在IE里设置好“每次访问该页时检查”的话才如愿!)

那在某种意义上,我本来是“每隔一秒钟做一次表单提交操作”,使用JK_10000(JK) 方法后,表面上是 “每隔一秒钟做一次表单提交”,但是执行结果,实际上是只提交操作一次。
JK_10000 2005-08-29
  • 打赏
  • 举报
回复
可以做到。
precipitant 2005-08-29
  • 打赏
  • 举报
回复
不可能做到。想都不要想,除非不用alert();
JK_10000 2005-08-29
  • 打赏
  • 举报
回复
如果不是在搞网上投票舞弊,
我就帮你做到。
JK_10000 2005-08-29
  • 打赏
  • 举报
回复
没有想改http://www.xxx.com/abc.jsp这个页面的代码的意思
只是用C:/Documents and Settings/Administrator.JK/Desktop/a1.html来演示一下效果
precipitant 2005-08-29
  • 打赏
  • 举报
回复
人家已经说明了,用的alert,而且代码改不了。
JK_10000 2005-08-29
  • 打赏
  • 举报
回复
A.htm:
---------


<iframe style="display:none" name=if0 ></iframe>
<input type=button value="autoRequest" onclick="autoRequest();"><br>
<script language=javascript >
function autoRequest()
{
if0.showModelessDialog("C:/Documents and Settings/Administrator.JK/Desktop/a1.html?a=1&b=2&c=3","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
setTimeout("if0.location.reload();setTimeout('autoRequest();',10);",3000);
}
</script>




C:/Documents and Settings/Administrator.JK/Desktop/a1.html
接受请求的页面,可以是其它域的页面
---------

<script>
alert("request at "+new Date());
</script>
onetop 2005-08-29
  • 打赏
  • 举报
回复
请教jk_10000 如何做到?? 我不是网上投票舞弊的!
amorsuper 2005-08-28
  • 打赏
  • 举报
回复
"找个砝码把回车键按下去就可以了"

我也很想知道这个是怎么实现的啊
onetop 2005-08-28
  • 打赏
  • 举报
回复
晕,那电脑不能使用了......
qidizi 2005-08-28
  • 打赏
  • 举报
回复
"找个砝码把回车键按下去就可以了"
狂按它不放!直到要求达到!
加载更多回复(11)

87,925

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧