当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript写的一个DIV 弹出网页对话框

Javascript
学习ExtJS(二) Button常用方法
学习ExtJS TextField常用方法
学习ExtJS Panel常用方法
学习ExtJS Window常用方法
学习ExtJS 访问容器对象
学习ExtJS border布局
学习ExtJS fit布局使用说明
学习ExtJS form布局
学习ExtJS accordion布局
学习ExtJS table布局
Javascript 日期处理之时区问题
JavaScript 监听textarea中按键事件
Javascript isArray 数组类型检测函数
JavaScript delete 属性的使用
防止动态加载JavaScript引起的内存泄漏问题
javascript Range对象跨浏览器常用操作
JavaScript 另类遍历数组实现代码
网页制作ajax特效实例
javascript修复浏览器中头痛问题
2008年关注基于JavaScript开发的产品

Javascript 中的 JavaScript写的一个DIV 弹出网页对话框


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 362 ::
收藏到网摘: n/a

自己整理得一个JavaScript写的一个DIV 弹出网页对话框 网上搜索到的代码,做了一些修改该,
修正无法自定义颜色,修正IE8 下错误,以及其他小BUG 兼容IE6~8以及火狐
可以自定义
// 提示窗口标题高度
// 提示窗口的边框颜色
// 提示窗口的标题颜色
// 提示窗口的标题背景色
// 提示内容的背景色
// 提示内容文字对齐方式
功能 可以弹出一个大DIV遮住页面(IE下 透明) 然后在屏幕中央显示显示一个小DIV
可用作功能提示 操作提示 以及公告等
提示内容可以使带HTML标记的文字,也可是一个页面链接
复制代码 代码如下:

function MessageBox()
{
this.titleheight = "21"; // 提示窗口标题高度
this.bordercolor = "#666699"; // 提示窗口的边框颜色
this.titlecolor = "#1259a4"; // 提示窗口的标题颜色
this.titlebgcolor = "#e4f1fb"; // 提示窗口的标题背景色
this.bgcolor = "#FFFFFF"; // 提示内容的背景色
this.MsgAlign="left";
this.Show=function(title, msg, framesrc, w, h)
{
var iWidth = document.documentElement.clientWidth;
var iHeight = document.documentElement.clientHeight+document.documentElement.scrollTop*2;
var bgObj = document.createElement("div");
bgObj.style.cssText = "position:absolute;left:0px;top:0px;width:"+iWidth+"px;height:"+Math.max(document.body.clientHeight, iHeight)+"px;filter:Alpha(Opacity=30);opacity:0.3;background-color:#000000;z-index:101;";
document.body.appendChild(bgObj);
var msgObj=document.createElement("div");
msgObj.style.cssText = "position:absolute;font:11px '宋体';top:"+(iHeight-h)/2+"px;left:"+(iWidth-w)/2+"px;width:"+w+"px;height:"+h+"px;text-align:center;border:1px solid "+this.bordercolor+";background-color:"+this.bgcolor+";padding:1px;line-height:22px;z-index:102;";
document.body.appendChild(msgObj);
var table = document.createElement("table");
msgObj.appendChild(table);
table.style.cssText = "margin:0px;border:0px;padding:0px;";
table.cellSpacing = 0;
var tr = table.insertRow(-1);
var titleBar = tr.insertCell(-1);
titleBar.style.cssText = ";width:"+(w-84)+"px;height:"+this.titleheight+"px;text-align:left;padding:3px;margin:0px;font:bold 13px '宋体';color:"+this.titlecolor+";cursor:move;background-color:" + this.titlebgcolor;
titleBar.style.paddingLeft = "10px";
titleBar.innerHTML = title;
var moveX = 0;
var moveY = 0;
var moveTop = 0;
var moveLeft = 0;
var moveable = false;
var docMouseMoveEvent = document.onmousemove;
var docMouseUpEvent = document.onmouseup;
titleBar.onmousedown = function(){
var evt = getEvent();
moveable = true;
moveX = evt.clientX;
moveY = evt.clientY;
moveTop = parseInt(msgObj.style.top);
moveLeft = parseInt(msgObj.style.left);
document.onmousemove = function(){
if (moveable)
{
var evt = getEvent();
var x = moveLeft + evt.clientX - moveX;
var y = moveTop + evt.clientY - moveY;
if ( x > 0 &&( x + w < iWidth) && y > 0 && (y + h < iHeight) )
{
msgObj.style.left = x + "px";
msgObj.style.top = y + "px";
}
}
};
document.onmouseup = function (){
if (moveable)
{
document.onmousemove = docMouseMoveEvent;
document.onmouseup = docMouseUpEvent;
moveable = false;
moveX = 0;
moveY = 0;
moveTop = 0;
moveLeft = 0;
}
};
}
var closeBtn = tr.insertCell(-1);
closeBtn.style.cssText = "cursor:pointer; padding:2px;background-color:" + this.titlebgcolor;
closeBtn.innerHTML = "<span style="font-size:10pt;color:"+this.titlecolor+";" style="font-size:10pt;color:"+this.titlecolor+";" id='closeBtn'>×关闭窗口";
closeBtn.onclick = function(){
document.body.removeChild(bgObj);
document.body.removeChild(msgObj);
}
var msgBox = table.insertRow(-1).insertCell(-1);
msgBox.style.cssText = "font:10pt '宋体';";
msgBox.colSpan = 2;
if(framesrc != "")
{
msg = "<iframe name='frmAlertWin' id='frmAlertWin' src="about:blank" src="about:blank" frameborder=0 marginwidth=0 marginheight=0 style='height:"+(h-this.titleheight-10)+"px;width:100%;'></iframe>";
}
msgBox.innerHTML = "<div style="\" style="\""text-align:"+this.MsgAlign+";\">"+msg+"</div>";
if(document.getElementById("frmAlertWin") != null)
{
document.getElementById("frmAlertWin").src = framesrc;
}

function getEvent(){
return window.event || arguments.callee.caller.arguments[0];
}
}
}

调用方式
var msgbox=new MessageBox();
msgbox.Show('站内公告',"小小提示","",500,220);///参数:标题,内容(提示为连接页面时可为空),连接页面地址(使用文字是可为空),宽度,高度
要注意的是如果在页面加载时就要弹出提示 请将调用代码放在body标记以后 否则在IE8下回出现错误