JS实现自定义alert,自定义window.open

 var ServarPath = '/WebSite/';
/**********************************************************************/
//通用函数
/**********************************************************************/
function $(objectID){   
    return document.getElementById(objectID);
}
/**********************************************************************/
//客户端浏览器判断
/**********************************************************************/
isMac = navigator.appVersion.indexOf("Mac")  !=-1 ? true : false;
isIE  = navigator.appVersion.indexOf("MSIE") !=-1 ? true : false;
isNS6 = document.getElementById&&!document.all ? true : false;
isNS4 = (document.layers) ? true : false;
isOPERAMINI = (screen.height == 5000 && screen.availHeight == 5000 ) ? true : false;
isSafari = ((navigator.userAgent.indexOf("Safari")!=-1)&&(isMac)) ? true : false;
/**********************************************************************/
//模式对话框时创建背景
/**********************************************************************/
var DialogBackground = null;

function CreateBackGroundDiv(zindex){     
    hideAllSelect();
    DialogBackground = document.createElement("<div id='DialogBackground' style='z-index:"+zindex+";width:100%;height:100%;top:0px;left:0px;position:absolute;background-color:Gray;opacity: 0.2;filter: Alpha(Opacity=20);'></div>");
    document.body.appendChild(DialogBackground);
}
function RemoveBackGroundDiv(){
    showAllSelect();
    if(DialogBackground != null)    {
        document.body.removeChild(DialogBackground);
        DialogBackground = null;
    }   
}
function hideAllSelect(){  
   var obj = document.getElementsByTagName("SELECT");
   for(var i=0;i<obj.length;i++)  
      obj[i].style.visibility = "hidden";  
}
function showAllSelect(){   
   var obj=document.getElementsByTagName("SELECT");
   for(var i=0;i<obj.length;i++)  
     obj[i].style.visibility = "visible";  
}
/**********************************************************************/
//自己定义alert/confim
/**********************************************************************/
function ALERT(text,title,messageType)
{
    if(!title) {title = "系统提示";}  
    InitDialogBox(text,title,"Client",messageType,false,false,false,false,false);
}
function CONFIRM(text,title,OKMethod,CancelMethod)
{
    if(!title) {title = "系统提示";}   
    InitDialogBox(text,title,"Client","Confirm",OKMethod,CancelMethod,false,false,false);
}
function WEBALERT(text,title,DialogBoxID,isOkPostBack,messageType)
{
    InitDialogBox(text,title,"Web",messageType,false,false,isOkPostBack,false,DialogBoxID);
}
function WEBCONFIRM(text,title,DialogBoxID,isOkPostBack,isCancelPostBack)
{
    InitDialogBox(text,title,"Web","Confirm",false,false,isOkPostBack,isCancelPostBack,DialogBoxID);
}

var DialogBox = null;

function InitDialogBox(text,title,Invoke,messageType,OKMethod,CancelMethod,isOKPostBack,isCancelPostBack,DialogBoxID)
{
    var imageUrl = GetDialogImageByType(messageType);   
    DialogBox = document.createElement("<div id='DialogBox' class='DialogBoxContainer' style='z-index: 20001; width: 360px; height: 120px; position: absolute;'></div>");
   
    var dialogBoxHead = '';
    var dialogBoxBody = '';
    var dialogBoxFoot = '';
   
    dialogBoxHead += "<div onMousedown='redayDrag(this);' οnmοusemοve='draging(this);' οnmοuseup='endDrag(this);'>";
    dialogBoxHead += "   <table class='DialogBoxHead' style='filter:alpha(opacity=80);'>";
    dialogBoxHead += "      <tr>";
    dialogBoxHead += "        <td align=left>&nbsp;[" + title + "]</td>";  
    dialogBoxHead += "        <td align=right><span οnclick='closeDialogBox();' style='cursor:hand;font-family:webdings;'>r&nbsp;</span></td>";
    dialogBoxHead += "      </tr>";
    dialogBoxHead += "   </table>";
    dialogBoxHead += "</div>";
   
    dialogBoxBody += "<div>";
    dialogBoxBody += "   <table class='DialogBoxBody' style='filter:alpha(opacity=90);'>";
    dialogBoxBody += "      <tr>";
    dialogBoxBody += "        <td align='center' width='50px'><img src='" + imageUrl + "'></td>";  
    dialogBoxBody += "        <td>" + text + "</td>";
    dialogBoxBody += "      </tr>";
    dialogBoxBody += "   </table>";
    dialogBoxBody += "</div>";
   
    dialogBoxFoot += "<div>";
    dialogBoxFoot += "   <table class='DialogBoxFoot' style='filter:alpha(opacity=90);'>";
    dialogBoxFoot += "      <tr>";
    dialogBoxFoot += "        <td>";
    if(Invoke == "Web")
        {
            dialogBoxFoot += InitWebEventButton(messageType,isOKPostBack,isCancelPostBack,DialogBoxID);
        }
        else if(Invoke == "Client")
        {
            dialogBoxFoot += InitClientEventButton(messageType,OKMethod,CancelMethod);
        }
    dialogBoxFoot += "        </td>";
    dialogBoxFoot += "      </tr>";
    dialogBoxFoot += "   </table>";
    dialogBoxFoot += "</div>";
    
     DialogBox.innerHTML = dialogBoxHead + dialogBoxBody + dialogBoxFoot;    
     var WinWidth  = document.documentElement.clientWidth;
     var WinHeight = document.documentElement.clientHeight;
     if( WinWidth ==0 || WinHeight==0)
     {
        WinWidth  = document.body.clientWidth;
        WinHeight = document.body.clientHeight;
     }
          CreateBackGroundDiv(20000);
     DialogBox.style.left = document.documentElement.scrollLeft + (WinWidth - parseInt(DialogBox.style.width) )/2;
     DialogBox.style.top  = document.documentElement.scrollTop + (WinHeight - parseInt(DialogBox.style.height))/2;

     document.body.appendChild(DialogBox);
     window.attachEvent('onresize',resetDialogBox);
     window.attachEvent('onscroll',resetDialogBox);
}

function InitWebEventButton(messageType,isOKPostBack,isCancelPostBack,DialogBoxID)
{
    var BtnHTML = "";
    if(isOKPostBack)      { BtnHTML += "   <input type='button' value='OK' class='button' οnclick='" + DialogBoxID + "OKPostBack();'/>";}
    else                  { BtnHTML += "   <input type='button' value='OK' class='button' οnclick='closeDialogBox();'/>";}
    if(messageType == "Confirm")
    {         
        if(isCancelPostBack)  { BtnHTML += "   <input type='button' value='CANCEL' class='button' οnclick='" + DialogBoxID + "CancelPostBack();'/>";}
        else                  { BtnHTML += "   <input type='button' value='CANCEL' class='button' οnclick='closeDialogBox();'/>";}
    }
    return BtnHTML;
}
function InitClientEventButton(messageType,OKMethod,CancelMethod)
{
    var BtnHTML = "";
    if(messageType == "Confirm")
    {;
        if(OKMethod)     { BtnHTML += "   <input type='button' class='button' value='OK' οnclick='closeDialogBox();" + OKMethod + "();'/>";}
        else             { BtnHTML += "   <input type='button' class='button' value='OK' οnclick='closeDialogBox();'/>";}
        if(CancelMethod) { BtnHTML += "   <input type='button' class='button' value='CANCEL' οnclick='closeDialogBox();" + CancelMethod + "();'/>";}
        else             { BtnHTML += "   <input type='button' class='button' value='CANCEL' οnclick='closeDialogBox();'/>"; }           
    }
    else
    {
        BtnHTML += "   <input type='button' value='OK' class='button' οnclick='closeDialogBox();'/>";
    }
    return BtnHTML;
}

function GetDialogImageByType(messageType)
{
    switch(messageType)
    {      
        case "Information":
            return ServarPath + "images/material/information.gif";
        case "Warning":
            return ServarPath + "images/material/warning.gif";
        case "Error":
            return ServarPath + "images/material/error.gif";
        case "Confirm":
            return ServarPath + "images/material/Confirm.gif";
        default:
            return ServarPath + "images/material/information.gif";
    }
}
function closeDialogBox()
{
    RemoveBackGroundDiv();
    document.body.removeChild(DialogBox);
    window.detachEvent("onresize",resetDialogBox);
    window.detachEvent("onscroll",resetDialogBox);  
    DialogBox = null;  
}
function resetDialogBox(){   
    var width = document.documentElement.scrollWidth;
    var height = document.documentElement.scrollHeight;  
    if(document.documentElement.scrollWidth < document.documentElement.clientWidth){
        width = document.documentElement.clientWidth;
    }
    if(document.documentElement.scrollHeight < document.documentElement.clientHeight){
        height = document.documentElement.clientHeight;
    }      
    if(DialogBackground != null){
        DialogBackground.style.width = width;
        DialogBackground.style.height = height;           
    }
    if(DialogBox != null){
        DialogBox.style.left = document.documentElement.scrollLeft + (document.documentElement.clientWidth - DialogBox.offsetWidth )/2;
        DialogBox.style.top =  document.documentElement.scrollTop + (document.documentElement.clientHeight - DialogBox.offsetHeight)/2;
    }
}
/**********************************************************************/
//自字定义window.open
/**********************************************************************/
var WinIndex = 0;
var WinZindex=10001;//z-index;
function ResetDialogPage(ID,element){
    var win = $(ID);
    win.style.width = element.offsetWidth;
    win.style.height = element.offsetHeight + 40;
}
function ResizeDialogPage(ID){
    var win = $(ID + "_BodyDiv");
    if(win.isContentEditable){ win.contentEditable = 'false';}
    else{ win.contentEditable = 'true'; }
}
function closeDialogPage(ID){
    var win = $(ID);
    document.body.removeChild(win);
    RemoveBackGroundDiv();
}
function getFocus(obj)
{
    if(obj.style.zIndex!=WinZindex)
    {
        WinZindex = WinZindex + 1;      
        obj.style.zIndex=WinZindex;       
    }
}
function WINDOWOPEN(url,w,h,tit,e,resize,model)
{
    if(!url){ return false; }
    if(!w || !h){ w = 800;h=600; }
    if (!isIE){ window.open(url,'','width=' + w +',' + h +',left=100,top=100'); return false;}   
    if(!tit){tit = "New Window";}
    if(!resize) {resize = false;}  
    if(!model) {model = false;}  
    if (!e)
    {
        e = new Object();
        e.clientX = document.documentElement.scrollLeft + parseInt((document.documentElement.clientWidth - w) / 2);
        e.clientY = document.documentElement.scrollTop + parseInt((document.documentElement.clientHeight - h) / 2);
    }
    var ID = "Window" + WinIndex++;
    var newWin = document.createElement("<div id='" + ID + "' class='DialogPageContainer' οnmοusedοwn='getFocus(this);' style='z-index: " + (WinZindex++) + ";position:absolute;'></div>");
    var dialogPageHeadDiv = "";
    var dialogPageBodyDiv = "";
    var dialogPageFootDiv = "";
   
    dialogPageHeadDiv += "<div id='" + ID + "_HeadDiv' οndblclick=/"closeDialogPage('" + ID + "');/" οnmοusedοwn='redayDrag(this);' οnmοusemοve='draging(this);' οnmοuseup='endDrag(this);' >";
    dialogPageHeadDiv += "   <table  border='0' cellpadding='0' cellspacing='0' class='DialogPageHead' style=';filter:alpha(opacity=90);'>";
    dialogPageHeadDiv += "      <tr>";
    dialogPageHeadDiv += "        <td align=left>&nbsp;[" + tit + "]</td>";
    dialogPageHeadDiv += "        <td align=right>";
    if(resize)
    {
         dialogPageHeadDiv += "        <span οnclick=/"ResizeDialogPage('" + ID + "');/" style='cursor:hand;font-family:webdings;'>2</span>";
    }
    dialogPageHeadDiv += "        <span οnclick=/"closeDialogPage('" + ID + "');/" style='cursor:hand;font-family:webdings;'>r&nbsp;</span></td>";
    dialogPageHeadDiv += "      </tr>";
    dialogPageHeadDiv += "   </table>";
    dialogPageHeadDiv += "</div>";   
   
    dialogPageBodyDiv += "<div id='" + ID + "_BodyDiv' style='filter:alpha(opacity=90);' class='DialogPageBody' contenteditable='false' οnkeypress='javascript:event.keyCode = 0;' οnpaste='javascript:return false;' οncοpy='javascript:return false;' oncut='javascript:return false;'>";   
    dialogPageBodyDiv += "  <iframe id='" + ID + "_Frame' οnresize=/"ResetDialogPage('" + ID + "',this);/" frameborder='0' style='width:" + w + "px;height:" + h + "px' src='" + url + "'></iframe>";   
    dialogPageBodyDiv += "</div>";
  
    dialogPageFootDiv += "<div id='" + ID + "_FootDiv'>";
    dialogPageFootDiv += "    <table border='0' cellpadding='0' cellspacing='0'  class='DialogPageFoot'>";
    dialogPageFootDiv += "        <tr>";
    dialogPageFootDiv += "            <td style='padding-left: 10px;'>" + url + "<td>";
    dialogPageFootDiv += "        </tr>";
    dialogPageFootDiv += "    </table>";
    dialogPageFootDiv += "</div>";
   
    newWin.innerHTML = dialogPageHeadDiv + dialogPageBodyDiv + dialogPageFootDiv; 
    if(model) 
    {
        CreateBackGroundDiv(WinZindex-1);
    }
    newWin.style.left = e.clientX;
    newWin.style.top = e.clientY;
    document.body.appendChild(newWin);   
    $(ID + "_Frame").opener = window;
    return false;
}
/**********************************************************************/
//移动对象
/**********************************************************************/
var eventX=0,eventY=0,objX=0,objY=0;
var dragAble = false;
function redayDrag(obj){    
    if(event.button==1)
    {
        obj.setCapture();
        var dialogPage = obj.parentNode;
        eventX=event.clientX;
        eventY=event.clientY;
        objX=parseInt(dialogPage.style.left);
        objY=parseInt(dialogPage.style.top);
        dragAble=true;   
    }   
}
function draging(obj){
    if(dragAble)
    {
        var dialogPage = obj.parentNode;
        dialogPage.style.left = objX + event.clientX - eventX;
        dialogPage.style.top  = objY + event.clientY - eventY;
    }  
}
function endDrag(obj)
{
    if(dragAble)
    {
        obj.releaseCapture();
        dragAble = false;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值