web中的模式对话框
来源:互联网 发布:ubuntu amd 显卡驱动 编辑:程序博客网 时间:2024/09/21 09:19
模式对话框在IE下可以使用window.showModalDialog的方法来解决。但是众所周知,FireFox为了支持web标准,在1.1版以后就取消了对模式对话框的支持。即:window.showModalDialog()。
我们先来分析一下实现模式对话框的原理,我们在IE的模式对话框下无论点父窗口的什么地方,focus(焦点)总是回到了子窗口上面。那么在FireFox下我们将focus总是设置在子窗口上不就行了嘛。怎么设置呢?javascript 有一个定时执行函数的操作似乎可以不断地将子窗口设置为focus(我也没有去测试是否可以,就不能说一定可以了),但是我们没有必要这么麻烦,因为只需当用户点击父窗口的时候设置一下就行了,很幸运,FireFox支持window.onclick事件。那么我们一起来动手写一个既支持IE又支持FireFox的“模式对话框”函数:
举例说明:
var DialogWin=null;
function modalWin(url){
if (window.showModalDialog){
window.showModalDialog(url,'write',"dialogWidth:500px;dialogHeight:300px");
} else {
var w = window.screen.width;
var h = window.screen.height;
var winwidth = 500;
var winheight = 300;
var win = (h - winheight)/2;
var winleft = (w- winwidth)/2;
window.myAction = this;
DialogWin = window.open(url, 'write',"top="+win+",left="+winleft+',width=500px,height=300px,modal=yes');
window.onclick=function (){DialogWin.focus()};
}
}
function a(){
alert("不支持鼠标右键行为");
window.onclick=function (){
DialogWin.focus()
};
return false;
}
document.oncontextmenu=new Function("return a();");
window.onload=function(){
modalWin("window.php");
}
//在同目录中建立一个window.php文件即可看到效果
function modalWin(url){
if (window.showModalDialog){
window.showModalDialog(url,'write',"dialogWidth:500px;dialogHeight:300px");
} else {
var w = window.screen.width;
var h = window.screen.height;
var winwidth = 500;
var winheight = 300;
var win = (h - winheight)/2;
var winleft = (w- winwidth)/2;
window.myAction = this;
DialogWin = window.open(url, 'write',"top="+win+",left="+winleft+',width=500px,height=300px,modal=yes');
window.onclick=function (){DialogWin.focus()};
}
}
function a(){
alert("不支持鼠标右键行为");
window.onclick=function (){
DialogWin.focus()
};
return false;
}
document.oncontextmenu=new Function("return a();");
window.onload=function(){
modalWin("window.php");
}
//在同目录中建立一个window.php文件即可看到效果
模式对话框的注意事项:
模式对话框在firefox下应用还不是很成熟,原因是firefox的鼠标右击事件通过 document.oncontextmenu进行捕捉也不能完全实现IE下的效果。还有就是frame下和iframe下的模式对话框应用。还存在一定缺陷。以后进一步改进。
关于IE与Firefox下判断鼠标单击事件的demo
function buttonEnv(event)
{
alert(event.button)
}
{
alert(event.button)
}
<body onmousedown="buttonEnv(event);">
IE left 1 right 2<br/>
FF left 0 right 2<br/>
IE left 1 right 2<br/>
FF left 0 right 2<br/>
- web中的模式对话框
- JSP中的模式对话框
- 自定义的(WEB)模式对话框,
- C#中的模式对话框和非模式对话框设置
- 一个简单的Web模式对话框
- Web开发中的弹出对话框控件介绍
- Web开发中的弹出对话框控件介绍
- Web开发中的弹出对话框控件介绍
- 解决线程中的非模式对话框
- Java web中的mvc模式
- java Web中的开发模式
- 模式对话框。。
- 模式对话框
- 模式对话框
- 模式对话框
- 模式对话框
- jquery bootstrap 中的 模式对话框 modal 设置宽度和高度
- aspnetforums 代码中的web设计模式
- asp.net转化为静态页面
- [转] ASP.NET 2.0 主题的动态切换
- fw:char和varchar2的区别
- callBack的使用。。
- jsp页面查询显示 急!!!
- web中的模式对话框
- soa学习
- oracle基础-10g
- 纵表转横表
- 将表单身份验证用于 Active Directory
- 如何正确利用超链接调用JavaScript函数
- 2008年05月26日办公室随笔
- Sysprep手工封装
- ORACLE分页查询SQL语法(附效率总结)