第四种方法(仿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> <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>