CharlesChen's Technical Space

简单实用是我一直在软件开发追求的目标(I Focus on. Net technology, to make the greatest efforts to enjoy the best of life.)
Not the best, only better
随笔 - 135, 文章 - 0, 评论 - 547, 阅读 - 51万
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

DIV模拟模式对话框window.showModalDialog效果

Posted on   Charles Chen  阅读(11691)  评论(12编辑  收藏  举报

     Hi all, 对话框在Windows应用程序中使用非常普遍,许多应用程序的设定,与用户交互需要通过对话框来进行,因此对话框是Windows应用程序中最重要的界面元素之一,是与用户交互的重要手段。对话框是一个特殊的窗口,任何对窗口进行的操作(如移动、最大化、最小化等)也可以在对话框实施。
对话框大致可以分为以下两种。
(1)模态对话框:模态对话框弹出后,独占了系统资源,用户只有在关闭该对话框后才可以继续执行,不能够在关闭对话框之前执行应用程序其他部分的代码。 模态对话框一般要求用户做出某种选择。
2)非模态对话框:非模态对话框弹出后,程序可以在不关闭该对话框的情况下继续执行,在转入到应用程序其他部分的代码时可以不需要用户做出响应。非模 态对话框一般用来显示信息,或者实时地进行一些设置。
模态窗口在传统编程语言中很常见,简单的说就是,如果是模态的,就是打开一个子窗口,如果这个子窗口不关闭,就不能操作它的父窗口,原来程序暂停执行 ,直到这个模态窗口关闭后才回到原来程序继续。 非模态的就是直接显示出来,然后原来的程序继续执行下面的语句,而且其他窗口也呈可用状态。

 比较常见的是window.open和window.showModelDialog方法,分别代表非模式对话框和模式对话框。然而有时候会遇到这样的情况:客户考虑安全隐患,不允许在程序中使用window.showModelDialog(模式对话框)弹出。这样的话我们就需要自己用DIV做一个类似的模式对话框的效果:下面是我自己写的一个简单的应用。 请点击按钮看看有什么效果

鉴于朋友们的意见,现在粘跌代码如下:

复制代码
<style>
div#mbDIV
{
position
: absolute;
top
: 0px;
left
: 0px;
width
:expression(document.body.scrollWidth+"px");
height
:expression(document.body.scrollHeight+"px");
background-color
: #AAAAAA;
z-index
: 10;
filter
: alpha(opacity=80);opacity:0.8;
}
div#loginDIV
{
position
: absolute;
width
: 500px;
height
: 180px;
background-color
:white;
z-index
: 20;
}
div#loginTopDIV
{
width
: 100%;
height
: 22px;
text-align
:center;
background-color
: blue;
cursor
: move;
}
</style>
<script>
function btnAnswer()
{
    
if(window.confirm("能告诉我你的名字吗?谢谢!"))
        alert(
"欢迎你");
    
else
    {
        alert(
"你哇假打哈!")
    }
    closeDIV();
}
</script><script type="text/javascript" src="https://files.cnblogs.com/Charles2008/DIVDialog.js" defer="defer"></script>
<div id="mbDIV" style="display: none;"></div>
<div id="loginDIV" style="display: none; left: 300px; top: 200px">
<div id="loginTopDIV">用DIV模拟的对话框</div>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
    
<tr>
            
<td align="center" colspan="2">这里就对话框中的内容,且支持拖动功能,欢迎测试! </td>
        
</tr>
        
<tr>
            
<td align="center"><input onclick="btnAnswer();" type="button" value="回答问题"></td>
            
<td align="center"><input onclick="closeDIV()" type="button" value="关闭"> </td>
        
</tr>
    
</table>
</div>
<div align="center"><input onclick="openDIV()" type="button" value="测试DIV模拟showModalDialog对话框"> </div>
复制代码
希望朋友们提出宝贵的意见。谢谢。
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示