日期:2014-05-18  浏览次数:20427 次

弹出层方法替换window.showModalDialog
开发Windows桌面应用程序时,可以有Messagebox这个函数或自己打开另一个自己新建的模态小窗体来进行操作。但ASP。NET的WEB页如何也才能自己弄出一个模态的小窗体效果呢,注:不是那种纯粹的JAVASCRIPT的alert()或Confirm()效果。要弄成相当于一个新的类似于桌面应用程序的小窗体形式,且和messagebox相似的模态窗体,窗体大小不是全屏或很大的样子。窗体里面的内容可以自定义,而且可以自己在里面添加控件,并在需要时当成模态窗体弹出来。

注:为了兼容性,最好不要用window.showModalDialog方法,采用弹出层方法,哪位会的话,共享下方法、经验。

------解决方案--------------------
<script type= "text/javascript " language= "javascript ">
//more javascript from http://www.smallrain.net
function sAlert(str){
var msgw,msgh,bordercolor;
msgw=400;//提示窗口的宽度
msgh=100;//提示窗口的高度
titleheight=25 //提示窗口标题高度
bordercolor= "#c51100 ";//提示窗口的边框颜色
titlecolor= "#c51100 ";//提示窗口的标题颜色

var sWidth,sHeight;
sWidth=screen.width;
sHeight=screen.height;

var bgObj=document.createElement( "div ");
bgObj.setAttribute( 'id ', 'bgDiv ');
bgObj.style.position= "absolute ";
bgObj.style.top= "0 ";
bgObj.style.background= "#cccccc ";
bgObj.style.filter= "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75 ";
bgObj.style.opacity= "0.6 ";
bgObj.style.left= "0 ";
bgObj.style.width=sWidth + "px ";
bgObj.style.height=sHeight + "px ";
bgObj.style.zIndex = "10000 ";
document.body.appendChild(bgObj);

var msgObj=document.createElement( "div ")
msgObj.setAttribute( "id ", "msgDiv ");
msgObj.setAttribute( "align ", "center ");
msgObj.style.background= "white ";
msgObj.style.border= "1px solid " + bordercolor;
msgObj.style.position = "absolute ";
msgObj.style.left = "50% ";
msgObj.style.top = "50% ";
msgObj.style.font= "12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif ";
msgObj.style.marginLeft = "-225px " ;
msgObj.style.marginTop = -75+document.documentElement.scrollTop+ "px ";
msgObj.style.width = msgw + "px ";
msgObj.style.height =msgh + "px ";
msgObj.style.textAlign = "center ";
msgObj.style.lineHeight = "25px ";
msgObj.style.zIndex = "10001 ";

var title=document.createElement( "h4 ");
title.setAttribute( "id ", "msgTitle ");
title.setAttribute( "align ", "right ");
title.style.margin= "0 ";
title.style.padding= "3px ";
title.style.background=bordercolor;
title.style.filter= "progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); ";
title.style.opacity= "0.75 ";
title.style.border= "1px solid " + bordercolor;
title.style.height= "18px ";
title.style.font= "12px Verdana, Geneva, Arial, Helvetica, sans-serif ";
title.style.color= "white ";
title.style.cursor= "pointer ";
title.innerHTML= "关闭 ";
title.onclick=function(){
document.body.removeChild(bgObj);
document.getElementById( "msgDiv ").removeChild(title);
document.body.removeChild(msgObj);
}
document.body.appendChild(msgObj);
document.getElementById( "msgDiv ").appendChild(title);
var txt=document.createElement( "p ");
txt.style.mar