设计思路:先创建一个满浏览器的层,设定透明度,有遮挡效果,然后再创建一个层(Zindex》遮挡层的Zindex),显示对话框内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function sAlert(str) {
var msgw, msgh, bordercolor;
msgw = 300; //提示窗口的宽度
msgh = 200; //提示窗口的高度
titleheight = 25; //提示窗口标题高度
bordercolor = "#FF3C00"; //提示窗口的边框颜色
titlecolor = "#D2CECE"; //提示窗口的标题颜色
var sWidth, sHeight;
//sWidth=document.body.offsetWidht;//得出当前屏幕的宽
sWidth = document.body.clientWidth; //body对象宽度
//sHeight=screen.height;//得到当前屏幕的高
//sHeight=document.body.clientHeight;//body对象高度
if (window.innerHeight && window.scrollMaxY) {
sHeight = window.innerHeight + window.scrollMaxY;
}
else if (document.body.scrollHeight > document.body.offsetHeight) {
sHeight = document.body.scrollHeight;
}
else {
sHeight = document.body.offsetHeight;
} //以上得到整个屏幕的高
var bgObj = document.createElement("div"); //创建一个div对象
bgObj.setAttribute("id", "bgDiv"); //可用bgObj.id="bgDiv"的方法,是为div制定属性值
bgObj.style.position = "absolute"; //把bgDiv这个div绝对定位
bgObj.style.top = "0"; //顶部为0
bgObj.style.background = "#777"; //北京颜色
bgObj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75)"; //ie浏览器透明度设置
bgObj.style.opacity = "0.6"; //透明度(火狐中)
bgObj.style.left = "0"; //左边为0
bgObj.style.width = sWidth + "px"; //宽(上面得到的屏幕宽度)
bgObj.style.height = sHeight + "px"; //高(上面得到的屏幕高度)
bgObj.style.zIndex = "100"; //层的z轴位置
document.body.appendChild(bgObj);
var msgObj = document.createElement("div"); //创建一个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 = "35%"; //从左侧开始位置
msgObj.style.top = "30%"; //从上部开始位置
msgObj.style.font = "12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif"; //字体属性
msgObj.style.width = msgw + "px"; //提示框的宽
msgObj.style.height = msgh + "px";
msgObj.style.textAlign = "center";
msgObj.style.lineHeight = "25px"; //行间距
msgObj.style.zIndex = "101"; //层的z轴位置
var title = document.createElement("h4"); //创建一个h4对象
title.setAttribute("id", "msgTitle"); //为h4对象添加标题
title.setAttribute("align", "right"); //文字对齐方式
title.style.margin = "0"; //浮动
title.style.padding = "3px"; //浮动
title.style.background = titlecolor; //背景颜色
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.height = "25px";
title.style.font = "12px Verdana,Geneva,Arial,Helvetica,sans-serif"; //字体属性
title.style.color = "white";
title.style.cursor = "pointer";
title.innerHTML = "<a href=\"#\">关闭</a>"; //显示文字
title.onclick = function () {
document.body.removeChild(bgObj); //移出遮罩层
document.getElementById("msgDiv").removeChild(title); //在提示框移除标题
document.body.removeChild(msgObj); //移除提示框
}
document.body.appendChild(msgObj); //在body中划出提示框层
document.getElementById("msgDiv").appendChild(title); //在提示框中增加标题
var txt = document.createElement("p");
txt.style.margin = "1em 0"; //文本浮动
txt.setAttribute("id", "msgTxt");
txt.innerHTML = str;
document.getElementById("msgDiv").appendChild(txt);
}
</script>
</head>
<body>
<a href="#" onclick="sAlert('<a href=http://www.baidu.com>测试效果</a>');">点击测试</a>
<input type="button" value="getSth" onclick="alert(window.innerHeight)" />
</body>
</html>