JavaScript寫(xiě)的一個(gè)DIV 彈出網(wǎng)頁(yè)對(duì)話框
更新時(shí)間:2009年08月14日 01:36:02 作者:
自己整理得一個(gè)JavaScript寫(xiě)的一個(gè)DIV 彈出網(wǎng)頁(yè)對(duì)話框
網(wǎng)上搜索到的代碼,做了一些修改該,
修正無(wú)法自定義顏色,修正IE8 下錯(cuò)誤,以及其他小BUG 兼容IE6~8以及火狐
可以自定義
// 提示窗口標(biāo)題高度
// 提示窗口的邊框顏色
// 提示窗口的標(biāo)題顏色
// 提示窗口的標(biāo)題背景色
// 提示內(nèi)容的背景色
// 提示內(nèi)容文字對(duì)齊方式
功能 可以彈出一個(gè)大DIV遮住頁(yè)面(IE下 透明) 然后在屏幕中央顯示顯示一個(gè)小DIV
可用作功能提示 操作提示 以及公告等
提示內(nèi)容可以使帶HTML標(biāo)記的文字,也可是一個(gè)頁(yè)面鏈接
function MessageBox()
{
this.titleheight = "21"; // 提示窗口標(biāo)題高度
this.bordercolor = "#666699"; // 提示窗口的邊框顏色
this.titlecolor = "#1259a4"; // 提示窗口的標(biāo)題顏色
this.titlebgcolor = "#e4f1fb"; // 提示窗口的標(biāo)題背景色
this.bgcolor = "#FFFFFF"; // 提示內(nèi)容的背景色
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'>×關(guān)閉窗口";
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];
}
}
}
調(diào)用方式
var msgbox=new MessageBox();
msgbox.Show('站內(nèi)公告',"小小提示","",500,220);///參數(shù):標(biāo)題,內(nèi)容(提示為連接頁(yè)面時(shí)可為空),連接頁(yè)面地址(使用文字是可為空),寬度,高度
要注意的是如果在頁(yè)面加載時(shí)就要彈出提示 請(qǐng)將調(diào)用代碼放在body標(biāo)記以后 否則在IE8下回出現(xiàn)錯(cuò)誤
修正無(wú)法自定義顏色,修正IE8 下錯(cuò)誤,以及其他小BUG 兼容IE6~8以及火狐
可以自定義
// 提示窗口標(biāo)題高度
// 提示窗口的邊框顏色
// 提示窗口的標(biāo)題顏色
// 提示窗口的標(biāo)題背景色
// 提示內(nèi)容的背景色
// 提示內(nèi)容文字對(duì)齊方式
功能 可以彈出一個(gè)大DIV遮住頁(yè)面(IE下 透明) 然后在屏幕中央顯示顯示一個(gè)小DIV
可用作功能提示 操作提示 以及公告等
提示內(nèi)容可以使帶HTML標(biāo)記的文字,也可是一個(gè)頁(yè)面鏈接
復(fù)制代碼 代碼如下:
function MessageBox()
{
this.titleheight = "21"; // 提示窗口標(biāo)題高度
this.bordercolor = "#666699"; // 提示窗口的邊框顏色
this.titlecolor = "#1259a4"; // 提示窗口的標(biāo)題顏色
this.titlebgcolor = "#e4f1fb"; // 提示窗口的標(biāo)題背景色
this.bgcolor = "#FFFFFF"; // 提示內(nèi)容的背景色
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'>×關(guān)閉窗口";
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];
}
}
}
調(diào)用方式
var msgbox=new MessageBox();
msgbox.Show('站內(nèi)公告',"小小提示","",500,220);///參數(shù):標(biāo)題,內(nèi)容(提示為連接頁(yè)面時(shí)可為空),連接頁(yè)面地址(使用文字是可為空),寬度,高度
要注意的是如果在頁(yè)面加載時(shí)就要彈出提示 請(qǐng)將調(diào)用代碼放在body標(biāo)記以后 否則在IE8下回出現(xiàn)錯(cuò)誤
相關(guān)文章
uniapp手機(jī)號(hào)一鍵登錄實(shí)現(xiàn)保姆級(jí)教程(含前端和后端)
這篇文章主要介紹了uniapp手機(jī)號(hào)一鍵登錄實(shí)現(xiàn)的相關(guān)資料,本文指導(dǎo)如何創(chuàng)建uniapp項(xiàng)目、關(guān)聯(lián)uniCloud云空間,并配置一鍵登錄功能,,整個(gè)過(guò)程涉及創(chuàng)建云開(kāi)發(fā)環(huán)境、關(guān)聯(lián)云服務(wù)空間、配置登錄服務(wù)和編寫(xiě)云函數(shù),需要的朋友可以參考下2024-10-10
js中的bigint類型轉(zhuǎn)化為json字符串時(shí)報(bào)無(wú)法序列化的問(wèn)題
JSON序列化指將JSON對(duì)象轉(zhuǎn)換為JSON字符串,J實(shí)現(xiàn)方式有兩種:一種是調(diào)用JSON對(duì)象內(nèi)置的stringify()函數(shù),一種是為對(duì)象自定義toJSON()函數(shù),本文重點(diǎn)介紹js中的bigint類型轉(zhuǎn)化為json字符串時(shí)報(bào)無(wú)法序列化的問(wèn)題,感興趣的朋友一起看看吧2024-01-01
Js 時(shí)間函數(shù)getYear()的使用問(wèn)題探討
不推薦使用getYear()這個(gè)函數(shù),因?yàn)樵诨鸷酗@示是不正確的,所以推薦使用getFullYear() 函數(shù),接下來(lái)為大家詳細(xì)介紹下getYear函數(shù)在不同瀏覽下的使用問(wèn)題2013-04-04
js實(shí)現(xiàn)用戶輸入的小寫(xiě)字母自動(dòng)轉(zhuǎn)大寫(xiě)字母的方法
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)用戶輸入的小寫(xiě)字母自動(dòng)轉(zhuǎn)大寫(xiě)字母的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
JS調(diào)用打印方法設(shè)置頁(yè)眉頁(yè)腳的實(shí)例
一個(gè)網(wǎng)頁(yè)打印相關(guān)功能的擴(kuò)展演示特效,在實(shí)現(xiàn)了打印功能外,還實(shí)現(xiàn)了打印預(yù)覽、打印前的頁(yè)眉頁(yè)腳設(shè)置,直接打印等功能,以前對(duì)JS打印前設(shè)置頁(yè)腳見(jiàn)的不多,所以這一個(gè)也算是挺有價(jià)值的,希望閑暇時(shí)參閱2013-05-05

