JS弹出一个网页对话框,后面全变灰,并不可用。(效果不是太好)

第四种方法(仿163):

原理就是:页面上动态创建两个层,一个为大的透明的层,一个为小的显示提示语的层(放在大的层上面)。就是这样。。。

 

function   sAlert(txt){
var   eSrc=(document.all)?window.event.srcElement:arguments[1];
var   shield   =   document.createElement( "DIV ");
shield.id   =   "shield ";
shield.style.position   =   "absolute ";
shield.style.left   =   "0px ";
shield.style.top   =   "0px ";
shield.style.width   =   "100% ";
shield.style.height   =   document.body.scrollHeight+ "px ";
shield.style.background   =   "#333 ";
shield.style.textAlign   =   "center ";
shield.style.zIndex   =   "10000 ";
shield.style.filter   =   "alpha(opacity=0) ";
shield.style.opacity   =   0;
var   alertFram   =   document.createElement( "DIV ");
alertFram.id= "alertFram ";
alertFram.style.position   =   "absolute ";
alertFram.style.left   =   "50% ";
alertFram.style.top   =   "50% ";
alertFram.style.marginLeft   =   "-225px "   ;
alertFram.style.marginTop   =   -75+document.documentElement.scrollTop+ "px ";
alertFram.style.width   =   "450px ";
alertFram.style.height   =   "150px ";
alertFram.style.background   =   "#ccc ";
alertFram.style.textAlign   =   "center ";
alertFram.style.lineHeight   =   "150px ";
alertFram.style.zIndex   =   "10001 ";

strHtml     =   " <ul   style=/ "list-style:none;margin:0px;padding:0px;width:100%/ "> /n ";
strHtml   +=   " <li   style=/ "background:#DD828D;text-align:left;padding-left:20px;font-size:14px;font-weight:bold;height:25px;line-height:25px;border:1px   solid   #F9CADE;/ "> [系统提示] </li> /n ";
strHtml   +=   " <li   style=/ "background:#fff;text-align:center;font-size:12px;height:120px;line-height:120px;border-left:1px   solid   #F9CADE;border-right:1px   solid   #F9CADE;/ "> "+txt+ " </li> /n ";
strHtml   +=   " <li   style=/ "background:#FDEEF4;text-align:center;font-weight:bold;height:25px;line-height:25px;   border:1px   solid   #F9CADE;/ "> <input   type=/ "button/ "   value=/ "确   定/ "   id=/ "do_OK/ "   οnclick=/ "doOk()/ "   /> </li> /n ";
strHtml   +=   " </ul> /n ";
alertFram.innerHTML   =   strHtml;
document.body.appendChild(alertFram);
document.body.appendChild(shield);
this.setOpacity   =   function(obj,opacity){
if(opacity> =1)opacity=opacity/100;
try{   obj.style.opacity=opacity;   }catch(e){}
try{ 
if(obj.filters.length> 0&&obj.filters( "alpha ")){
obj.filters( "alpha ").opacity=opacity*100;
}else{
obj.style.filter= "alpha(opacity=/ " "+(opacity*100)+ "/ ") ";
}
}catch(e){}
}
var   c   =   0;
this.doAlpha   =   function(){
if   (++c   >   20){clearInterval(ad);return   0;}
setOpacity(shield,c);
}
var   ad   =   setInterval( "doAlpha() ",1);

this.doOk   =   function(){
//alertFram.style.display   =   "none ";
//shield.style.display   =   "none ";
document.body.removeChild(alertFram);
document.body.removeChild(shield);
eSrc.focus();
document.body.onselectstart   =   function(){return   true;}
document.body.oncontextmenu   =   function(){return   true;}

}
this.doCanCel   =   function(){
document.body.removeChild(alertFram);
document.body.removeChild(shield);
eSrc.focus();
document.body.onselectstart   =   function(){return   true;}
document.body.oncontextmenu   =   function(){return   true;}

}
document.getElementById( "do_OK ").focus();
eSrc.blur();
document.body.onselectstart   =   function(){return   false;}
document.body.oncontextmenu   =   function(){return   false;}

}

直接贴给你了..

 

 

前提是:工程类型“AJAXEnableWebApplication”

第三种方法(AJAX实现):

前台代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>
    <style type="text/css">
    #UpdatePanel1{
      width: 200px; height: 50px;
      border: solid 1px gray;
    }
    #AlertDiv{
    left: 40%; top: 40%;
    position: absolute; width: 200px;
    padding: 12px;
    border: #000000 1px solid;
    background-color: white;
    text-align: left;
    visibility: hidden;
    z-index: 99;
    }
   
    #AlertButtons{
    position: absolute; right: 5%; bottom: 5%;
    }
</style>
</head>
<body id="bodytag" style="margin: 0px">
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" OnAsyncPostBackError="ScriptManager1_AsyncPostBackError" />
 
        <script type="text/javascript">
var divElem = 'AlertDiv';
var messageElem = 'AlertMessage';
var bodyTag = 'bodytag';
var sWidth,sHeight;
    sWidth=document.body.offsetWidth;//浏览器工作区域内页面宽度
    sHeight=screen.height;//屏幕高度(垂直分辨率)
 
 
    //背景层(大小与窗口有效区域相同,即当弹出对话框时,背景显示为放射状透明灰色)
    var bgObj=document.createElement("div");//创建一个div对象(背景层)
    //定义div属性,即相当于
    // <div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:19999;"></div>
    bgObj.setAttribute('id','bgDiv');
    bgObj.style.position= "absolute";
    bgObj.style.display="none";
    bgObj.style.top= "0";
    bgObj.style.background= "#777";
    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";
    $get(bodyTag).appendChild(bgObj);
 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function ToggleAlertDiv(visString)
{
     if (visString == 'hidden')
     {
         $get('bgDiv').style.display="none";
         $get(bodyTag).style.backgroundColor = 'white';
     }
     else
     {
         $get('bgDiv').style.display="";
     }
     var adiv = $get(divElem);
     adiv.style.visibility = visString;
}
 
function ClearErrorState() {
     $get(messageElem).innerHTML = '';
     ToggleAlertDiv('hidden');
}
 
function EndRequestHandler(sender, args)
{
 
   if (args.get_error() != undefined)
   {
       var errorMessage;
 
       if (args.get_response().get_statusCode() == '200')
       {
           errorMessage = args.get_error().message;
       }
       else
       {
           errorMessage = 'An unspecified error occurred. ';
       }
       args.set_errorHandled(true);
 
       ToggleAlertDiv('visible');
 
       $get(messageElem).innerHTML = errorMessage;
   }
}
        </script>
 
        <div>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:TextBox ID="TextBox1" runat="server" Width="30px"></asp:TextBox>
                    /<asp:TextBox ID="TextBox2" runat="server" Width="30px"></asp:TextBox>&nbsp;<asp:Button
                        ID="Button1" runat="server" OnClick="Button1_Click" Text="Execute" />
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                </ContentTemplate>
            </asp:UpdatePanel>
            <div id="AlertDiv" style="z-index: 20000;">
                <div id="AlertMessage">
                </div>
                <br />
                <div id="AlertButtons">
                    <input id="OKButton" type="button" value="OK" runat="server" οnclick="ClearErrorState()" />
                </div>
            </div>
        </div>
    </form>
</body>
</html>

后台代码:

 using System;
 using System.Data;
 using System.Configuration;
 using System.Web;
 using System.Web.Security;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
 
 public partial class _Default : System.Web.UI.Page
 {
     protected void Page_Load(object sender, EventArgs e)
     {
 
     }
     protected void Button1_Click(object sender, EventArgs e)
     {
         try
         {
             int a = Int32.Parse(TextBox1.Text);
 
             int b = Int32.Parse(TextBox2.Text);
 
             int res = a / b;
 
             Label1.Text = res.ToString();
         }
 
         catch (Exception ex)
         {
             if (TextBox1.Text.Length > 0 && TextBox2.Text.Length > 0)
             {
                 ex.Data["ExtraInfo"] = " You can't divide " +
 
                     TextBox1.Text + " by " + TextBox2.Text + ".";
 
             }
             throw ex;
         }
     }
     protected void ScriptManager1_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
     {
         if (e.Exception.Data["ExtraInfo"] != null)
         {
             ScriptManager1.AsyncPostBackErrorMessage =
 
                 e.Exception.Message +
 
                 e.Exception.Data["ExtraInfo"].ToString();
 
         }
         else
         {
             ScriptManager1.AsyncPostBackErrorMessage =
 
             "An unspecified error occurred.";
         }
     }
 }

 

第一种方法:

 <html>
<head>
<title>JS弹出一个网页对话框,后面全变灰,并不可用。</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
*{margin:0;padding:0;}
</style>
</head>

<body οnbefοreunlοad="document.getElementById('msgDiv').style.visibility='hidden'" οnunlοad="document.getElementById('msgDiv').style.visibility='hidden'"οnlοad="document.getElementById('msgDiv').style.visibility='hidden'">
JS弹出一个网页对话框,后面全变灰,并不可用。思路:一个覆盖整个页面的层,设置透明度0
    <p>测试</p><p>测试</p><p>测试</p><p> 测试</p><p>测试</p><p>测试</p><p>测试< /p>
    <p>测试</p><p>测试</p><p>测试</p><p> 测试</p><p>测试</p><p>测试</p><p>测试< /p><p>测试</p>
    <input type="button" value="点击这里" onClick="sAlert('测试效果<br/>嗯!效果还不错!');"></input>
  

<script type="text/javascript" language="javascript" >
function removeObj(){//点击标题栏触发的事件
document.getElementById('msgDiv').style.visibility='hidden'
document.body.removeChild(document.getElementById('bgDiv'));
}

function sAlert(str){
var msgw,msgh,bordercolor;
msgw=400;//提示窗口的宽度
msgh=100;//提示窗口的高度
titleheight=25//提示窗口标题高度
bordercolor="#336699";//提示窗口的边框颜色
titlecolor="#99CCFF";//提示窗口的标题颜色

var sWidth,sHeight;
sWidth=document.body.offsetWidth;//浏览器工作区域内页面宽度 或使用 screen.width//屏幕的宽度
sHeight=screen.height;//屏幕高度(垂直分辨率)


//背景层(大小与窗口有效区域相同,即当弹出对话框时,背景显示为放射状透明灰色)
var bgObj=document.createElement("div");//创建一个div对象(背景层) //动态创建元素,这里创建的是 div
//定义div属性,即相当于(相当于,但确不是,必须对对象属性进行定义
//<div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha//f(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:10000;"></div>
bgObj.setAttribute('id','bgDiv');
bgObj.style.position="absolute";
bgObj.style.top="0";
bgObj.style.background="#777";
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);//在body内添加该div对象

//创建一个div对象(提示框层)
///var msgObj=document.createElement("div")
//定义div属性,即相当于
/*<div id="msgDiv" align="center" style="background-color:white; border:1px solid #336699; position:absolute; left:50%; top:50%; font:12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif; margin-left:-225px; margin-top:npx; width:400px; height:100px; text-align:center; line-height:25px; z-index:100001;"></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 ob = document.getElementById('msgDiv');
ob.style.visibility = "visible";

/*var title=document.createElement("h4");//创建一个h4对象(提示框标题栏)
//定义h4的属性,即相当于
//<h4 id="msgTitle" align="right" style="margin:0; padding:3px; background-color:#336699; filter:progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); opacity:0.75; border:1px solid #336699; height:18px; font:12px Verdana,Geneva,Arial,Helvetica,sans-serif; color:white; cursor:pointer;" οnclick="">关闭</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.οnclick=removeObj;

var button=document.createElement("input");//创建一个input对象(提示框按钮)
//定义input的属性,即相当于
//<input type="button" align="center" style="width:100px; align:center; margin-left:250px; margin-bottom:10px;" value="关闭">
button.setAttribute("type","button");
button.setAttribute("value","关闭");
button.style.width="60px";
button.style.align="center";
button.style.marginLeft="250px";
button.style.marginBottom="10px";
button.style.background=bordercolor;
button.style.border="1px solid "+ bordercolor;
button.style.color="white";
button.οnclick=removeObj;

function removeObj(){//点击标题栏触发的事件
    document.body.removeChild(bgObj);//删除背景层Div
    document.getElementById("msgDiv").removeChild(title);//删除提示框的标题栏
    document.body.removeChild(msgObj);//删除提示框层
}

document.body.appendChild(msgObj);//在body内添加提示框div对象msgObj
document.getElementById("msgDiv").appendChild(title);//在提示框div中添加标题栏对象title

var txt=document.createElement("p");//创建一个p对象(提示框提示信息)
//定义p的属性,即相当于
//<p style="margin:1em 0;" id="msgTxt">测试效果</p>
txt.style.margin="1em 0"
txt.setAttribute("id","msgTxt");
txt.innerHTML=str;//来源于函数调用时的参数值
document.getElementById("msgDiv").appendChild(txt);//在提示框div中添加提示信息对象txt
document.getElementById("msgDiv").appendChild(button);//在提示框div中添加按钮对象button*/
}
</script>
<div id="msgDiv" align="center" style="background-color:white; border:1px solid #336699; position:absolute; left:50%; top:50%; font:12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif; margin-left:-225px; margin-top:npx; width:400px; height:100px; text-align:center; line-height:25px; z-index:100001;visibility:hidden ;overflow:auto">
<h4 id="msgTitle" align="right" style="margin:0; padding:3px; background-color:#336699; opacity:0.75; border:1px solid #336699; height:18px; font:12px Verdana,Geneva,Arial,Helvetica,sans-serif; color:white; cursor:pointer;" οnclick="removeObj()">关闭</h4>
<input type="button" align="center" style="width:100px; align:center; margin-left:250px; margin-bottom:10px;" οnclick="removeObj()" value="关闭">
<p style="margin:1em 0;" id="msgTxt">测试效果</p>
    <p>测试</p><p>测试</p><p>测试</p><p> 测试</p><p>测试</p><p>测试</p><p>测试< /p>
    <p>测试</p><p>测试</p><p>测试</p><p> 测试</p><p>测试</p><p>测试</p><p>测试< /p><p>测试</p>
</div>
</body>
</html>

 

另一种方法:

 <html>  
 <head>  
 <title> Mark </title>  
 <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312"/>  
 <script   type="text/javascript">  
 function   GetMark()  
 {  
 var   eif=document.getElementById('hideIframe');  
 if(eif!=null)  
 {  
   document.body.bgColor='black';    
   eif.style.display="";  
 }  
 else  
 {  
 var   e=document.createElement("iframe");  
 e.id="hideIframe";  
 e.scrolling="no";  
 e.frameborder=0;  
 e.style.position="absolute";  
 e.style.top=0;  
 e.style.left=0;  
 e.style.margin=0;  
 e.style.width='100%';  
 e.style.height='100%';  
 e.style.filter="Alpha(style=0,opacity=30)";  
 document.body.appendChild(e);  
 document.body.bgColor='gray'; 
 //e.document.body.bgColor='gray';  
 e.contentWindow.document.write(" <div   align='center'   style='position:absolute;top:"+document.body.clientHeight/2+";width:100%'> <font   size='5'> <b> 正在处理您的请求...... </b> </font> </div>");  
 e.contentWindow.document.body.οnclick=HideIf;  
 }  
 }  
 function   HideIf()  
 {  
     document.getElementById('hideIframe').style.display="none";  
     document.body.bgColor="";  
 }  
 </script> </head>  
 <body   style="margin:0px">  
 <input   type="button"   id="btn1"   οnclick="GetMark()"   value="获取Mark"/>  
 <div   style="background-color" /> 
 </body>  
 </html> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值