昨天做有个需求,要confirm窗口默认选中取消。不知道有什么简单的方法,就模拟了一个。
说实话现在真不想做这些锁碎的事情,无奈。。。
基本思路就是利用showModalDialog打开模拟的页面,在页面里点击“确定”,“取消”按钮返回不同的值。
然后在父页面中判断返回值。代码没有整理,直接贴出来做个参考。
模拟页面confirm.htm
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title></title>
- <link href="../style/main_login.css" rel="stylesheet" type="text/css" />
- <script>
- function returnModal(reg) {
- window.returnValue = reg;
- window.close();
- }
- </script>
- </head>
- <body style="BACKGROUND=#ECE9D8">
- <br>
- <img src="../images/confirm.gif" style="vertical-align:middle">
- <script>
- var msg = window.dialogArguments;
- document.write(msg);
- </script><br><br>
- <div align="center">
- <input type="button" value=" 确定 " onclick="returnModal(1)">
- <input type="button" value=" 取消 " id="cancle" onclick="returnModal(0)">
- </div>
- <script>
- //虽然延时0秒,但可以保证focus在前面的按钮显示之后执行
- var tmptime = window.setTimeout("clear()", 0);
- function clear() {
- clearTimeout(tmptime);
- document.getElementById("cancle").focus();
- //document.getElementById("cancle").select();
- }
- </script>
- </body>
- </html>
调用的父窗口test.htm
- <script>
- function myconfirm(msg) {
- var sFeatures = "status:0;scroll:0;help:0;edge:raised;dialogHeight:" + 8 + ";dialogWidth:" + 16;
- var returnValues = window.showModalDialog("common/confirm.htm", msg, sFeatures);
- if (typeof returnValues == "undefined") returnValues = 0;
- //alert(returnValues);
- return returnValues;
- }
- function test() {
- if(myconfirm("真的需要删除这条记录吗?"))
- alert("ok");
- }
- </script>
- <input type="button" onclick="test()" value="test">