模拟confirm窗口

昨天做有个需求,要confirm窗口默认选中取消。不知道有什么简单的方法,就模拟了一个。

说实话现在真不想做这些锁碎的事情,无奈。。。

基本思路就是利用showModalDialog打开模拟的页面,在页面里点击“确定”,“取消”按钮返回不同的值。

然后在父页面中判断返回值。代码没有整理,直接贴出来做个参考。

模拟页面confirm.htm

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title></title>
  5.     <link href="../style/main_login.css" rel="stylesheet" type="text/css" />
  6.     <script>
  7.     function returnModal(reg) {
  8.       window.returnValue = reg;
  9.       window.close();
  10.      }
  11.         </script>
  12.   </head>
  13.   
  14.   <body style="BACKGROUND=#ECE9D8">
  15.   <br>
  16.     <img src="../images/confirm.gif" style="vertical-align:middle">
  17.     <script>
  18.     var msg = window.dialogArguments;
  19.     document.write(msg); 
  20.     </script><br><br>
  21.     <div align="center">
  22.     <input type="button" value="  确定  " onclick="returnModal(1)">
  23.     
  24.     <input type="button" value="  取消  " id="cancle" onclick="returnModal(0)">
  25.     </div>
  26.     
  27.   <script>
  28.   //虽然延时0秒,但可以保证focus在前面的按钮显示之后执行
  29.   var tmptime = window.setTimeout("clear()", 0);
  30.   function clear() {
  31.     clearTimeout(tmptime);
  32.     document.getElementById("cancle").focus();
  33.     //document.getElementById("cancle").select();
  34.   }
  35.   </script>
  36.   </body>
  37. </html>

调用的父窗口test.htm

  1. <script>
  2. function myconfirm(msg) {
  3.     var sFeatures = "status:0;scroll:0;help:0;edge:raised;dialogHeight:" + 8 + ";dialogWidth:" + 16;
  4.     var returnValues = window.showModalDialog("common/confirm.htm", msg, sFeatures);
  5.     if (typeof returnValues == "undefined") returnValues = 0;
  6.     //alert(returnValues);
  7.     return returnValues;
  8. }
  9. function test() {
  10.   if(myconfirm("真的需要删除这条记录吗?")) 
  11.     alert("ok");
  12. }
  13. </script>
  14. <input type="button" onclick="test()" value="test">

你可能感兴趣的:(模拟confirm窗口)