用div模拟alert对话框,N秒不点击自动关闭(适用IE6、IE7、firefox)

【转】http://www.javaeye.com/topic/528574

 

工作需要,经理让做个对话提示框,三秒不点击自动关闭,用在web页面上。如果让我用c#写也许毫不费力,于是觉得并没什么困难,然而真做起来。。。
    废话不说,问题如下:根据js运行机制,不可能将一个alert框强行关闭。前几天第一次做,查了好多资料,似乎找到了一个解决方法如test1.html。新建一个iframe,再借助于showModelessDialog来实现一个可关闭的alert。
    于是乎问题似乎解决了,可是今天用的时候才发现,在IE7下,也许是IE7的安全机制的问题,这个方法并不能如愿运行,而且不能兼容firefox。可怜哪,在IE7下甚至都不能执行"javascript:alert()"语句。在网上查了以上午,也没找到有兼容性好的解决方案,于是决定自己重新做个兼容的,一直弄到晚上总算完工了如test2.html。希望对有此需求的人也能有所帮助...如需要,可下载压缩包


    如果发现test2不兼容哪个浏览器的话,
    如果有更好的思路,
    请留言告诉我...



test1.html 经验证,适用于 IE6,不兼容IE7,firefox。

Java代码 复制代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">   
  2. <html>   
  3. <head>   
  4. <title></title>   
  5. </head>   
  6. <body>   
  7. <input type="button" value="弹出alert框,一秒后自动关闭;" onClick="JavaScript:myAlert('不点击确定三秒后自动跳转')">   
  8. </body>   
  9.   
  10. <script type="text/javascript">   
  11.     /**  
  12.      *@Description:弹出一个alert对话框,三秒钟内不点击确定,自动关闭alert框,该框最终模拟成非模态形式  
  13.      *              经验证,适用于 IE6,不兼容IE7,firefox  
  14.      *@param:  showstr     alert框里要显示的文本  
  15.     */  
  16.     function myAlert(showstr)   
  17.     {   
  18.         var alertInfo = showstr;  //传递alert框里要显示的信息   
  19.         var timer = 3000;   //设定停留的时间为3000ms,即3秒   
  20.         //在页面中新建一个框架frame,以便在该frame中弹出一个非模态对话框   
  21.         document.body.innerHTML += "<iframe style='display:none;' width='500' name='ifrtemp'></iframe>";   
  22.         //在非模态对话框中弹出一个alert框,并立即关闭该非模态对话框   
  23.         ifrtemp.showModelessDialog("javascript:alert('"+alertInfo+"');window.close();",   
  24.                 "",   
  25.                 "status:no;resizable:no;help:no;dialogHeight:530px;dialogWidth:40px;");   
  26.         setTimeout("ifrtemp.location.reload();",timer); //停留一段时间后强行关闭alert窗口   
  27.     }   
  28. </script>   
  29. </html>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
<input type="button" value="弹出alert框,一秒后自动关闭;" onClick="JavaScript:myAlert('不点击确定三秒后自动跳转')">
</body>

<script type=&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值