关于用DIV模拟Confirm确认窗口的问题

三木哥 2008-08-03 03:11:47
我用DIV做了一个确认窗口,用来替代Confirm,DIV有"确认"和"取消"两个按钮,
现在我想点击“确认”按钮的时候,使整个DIV窗口返回true, 也就是说要达到Confirm窗口的那种效果。

我把代码帖出来吧:
以下是Common.js文件的内容:

首先定义了两个DIV
document.write(" <div id='divMessageBoxBody' class='MessageBoxBody'> </div>");
document.write(" <div id='divMessageBoxBG' class='MessageBoxBG'> </div>");

//这是ConfirmBox函数的详细代码
function ConfirmBox(message)
{
var msgBox = document.getElementById("divMessageBoxBody");
var background = document.getElementById("divMessageBoxBG");
msgBox.style.display="block";
background.style.display="block";
var str="";
str+=" <table> <tr> <td class='ConfirmBoxIcon'> </td> <td>";
str+=" <table> <tr style=\"height:70px;\"> <td>"+message+" </td> </tr>";
str+=" <tr style='height:20px;'> <td style='text-align:right;'>";
str+=" <input type='button' id="ButtonYes" value='Yes' onclick='Hide();'/> ";
str+=" <input type='button' id="ButtonNo" value='No' onclick='Hide();'/>";
str+=" </td> </tr> </table> </td> </tr> </table>";
msgBox.innerHTML=str;
}

//隐藏DIV
function Hide()
{
document.getElementById("divMessageBoxBody").style.display="none";
document.getElementById("divMessageBoxBG").style.display="none";
}

以下是DIV的样式:
/*弹出窗口的背景样式*/
.MessageBoxBG
{
display: none;
position: absolute;
width: 100%;
height: 100%;
background-color: white;
z-index:1001;
-moz-opacity: 0.80;
opacity:.80;
filter: alpha(opacity=80);
}

/*弹出窗口的样式*/
.MessageBoxBody
{
display: none;
position: absolute;
background-color:#FFF;
border:solid 1px #B6BCCC;
font:12px Verdana, Geneva, Arial, Helvetica, sans-serif;
text-align:center;
top:50%;
left:50%;
height:135px;
width:300px;
margin:-60px 0 0 -150px;
padding: 0px;
z-index:1002;
overflow: auto;
}

现在最关键的就是点击ButtonYes时如何使整个DIV窗体返回true.
因为我在页面中是这样调用该函数的:
if(ConfirmBox('是否确认删除?'))
{
return true;
}
else
{
return false;
}
使用方法跟Confirm是一样的.


...全文
497 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
三木哥 2008-08-18
  • 打赏
  • 举报
回复
UP
三木哥 2008-08-05
  • 打赏
  • 举报
回复
UP
牙签是竹子的 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lion98 的回复:]
因为你的函数是非阻塞式的,所以调用你的函数时,不可能等到用户点击某个按钮再取得返回值,处理的办法还是用回调函数,这样的思想还是放弃好了
[/Quote]
nicholsky 2008-08-04
  • 打赏
  • 举报
回复
和另一个帖子一样,企图像MessageBox那些窗体的阻塞功能而不想用回调,是非单纯脚本能做的事吧。
lion98 2008-08-04
  • 打赏
  • 举报
回复
因为你的函数是非阻塞式的,所以调用你的函数时,不可能等到用户点击某个按钮再取得返回值,处理的办法还是用回调函数,这样的思想还是放弃好了
cuidenghong123 2008-08-04
  • 打赏
  • 举报
回复
学习
三木哥 2008-08-04
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nicholsky 的回复:]
和另一个帖子一样,企图像MessageBox那些窗体的阻塞功能而不想用回调,是非单纯脚本能做的事吧。
[/Quote]

那请问,如果用回调的话该怎么写呢?
l_wenb 2008-08-03
  • 打赏
  • 举报
回复
学习!!


我帮你顶!
cloudgamer 2008-08-03
  • 打赏
  • 举报
回复
只能给按钮的onclick加函数吧
myvicy 2008-08-03
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080403/15/ed1832c0-ac2f-4a23-8283-edd360fb1b20.html
不知道这个帖子是否对你有启示。
请参考一下。
lawrendc 2008-08-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Sennet 的回复:]
引用 1 楼 lawrendc 的回复:
你在关闭的时候不是调用了hide()吗 做一个返回值不就行了嘛


呵 ,没这么简单!
[/Quote]

恩 对
三木哥 2008-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lawrendc 的回复:]
你在关闭的时候不是调用了hide()吗 做一个返回值不就行了嘛
[/Quote]

呵 ,没这么简单!
lawrendc 2008-08-03
  • 打赏
  • 举报
回复
你在关闭的时候不是调用了hide()吗 做一个返回值不就行了嘛

87,907

社区成员

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

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