重写alert方法与模态窗体

 <script type="text/javascript">
        function UpdatePublishTime() {
            var hd_ArticleID = document.getElementById("hf_ArticleID");
            var hd_ArticleType = document.getElementById("hf_ArticleSaveType");
            var pbURL = 'AmendArticlePublishTime.aspx?ArticleID=' + hd_ArticleID.value + '&ArticleType=' + hd_ArticleType.value + '&mode=' + new Date().getTime(); ;
            var newPublishTime = window.showModalDialog(pbURL, "", "dialogHeight:280px;dialogWidth:140px;center:yes;status:no");
            //if (typeof (newRootNodeID) != "undefined" && newRootNodeID != null && newRootNodeID != "") {
            //    var lbl_PublishTime = document.getElementById("lbl_PublishTime");
            //lbl_PublishTime.value = newPublishTime; //显示修改后的文章发布时间
            //            }
            
        }
    </script>

模态窗体的运用, window.showModalDialog(pbURL, "", "dialogHeight:280px;dialogWidth:140px;center:yes;status:no");

模态窗体是把一个页面用一个小窗体显示出来,但是正常来说这个窗体是一个表格或者内容相对比较丰富

我今天遇到的问题是希望当你点击“联系电话”按钮的时候弹出来该用户的联系电话,所以这么小的东西的话用一个页面去做的话,个人感觉很没有必要

所以果断抛弃了模态窗体这个方法!

那么我就想到了简单的js里头的alert方法,但是问题又来了,alert方法窗体不符合我的要求,所以上网找了重写alert方法的函数,

最终结果如下:

javascript函数:

<script language="javascript">
        function alertWin(title, msg, w, h) {
            var titleheight = "15px"; // 窗口标题高度 
            var bordercolor = "#666699"; //窗口的边框颜色 
            var titlecolor = "#FFFFFF"; // 窗口的标题颜色
            var titlebgcolor = "#407390"; // 窗口的标题背景色
            var bgcolor = "#f7f8f9"; // 内容背景色
            var iWidth = document.documentElement.clientWidth;
            var iHeight = document.documentElement.clientHeight;
            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 " + bordercolor + ";background-color:" + 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:100%;height:" + titleheight + "px;text-align:left;padding:3px;margin:0px;font:bold 13px '宋体';color:" + titlecolor + ";border:1px solid " + bordercolor + ";cursor:move;background-color:" + 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:" + titlebgcolor;
            closeBtn.innerHTML = "<span style='font-size:15pt; color:" + titlecolor + ";'>×</span>";
            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;
            msgBox.innerHTML = msg;

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

调用的话:

 <input type="button" value="联系方式" class="btn" onclick="return alertWin('联系电话','&nbsp;<table><tr><td>产权人电话:</td><td><%#Eval("CONTACT_TEL_NO_RESIDENT")%></td></tr><tr><td>&nbsp;</td></tr><tr><td>使用人电话:</td><td><%#Eval("CONTACT_TEL_NO_OWNER")%></td></tr><tr><td>&nbsp;</td></tr><tr><td>备用联系电话1:</td><td><%#Eval("BK_PHONE_NO_1")%></td></tr><tr><td>&nbsp;</td></tr><tr><td>备用联系电话2:</td><td><%#Eval("BK_PHONE_NO_2")%></td></tr><tr><td>&nbsp;</td></tr><tr><td>备用联系电话3:</td><td><%#Eval("BK_PHONE_NO_3")%></td></tr><tr><td>&nbsp;</td></tr><tr><td>备用联系电话4:</td><td><%#Eval("BK_PHONE_NO_4")%></td><tr><td>&nbsp;</td></tr></tr></table>',200,200)">

该方法为alertWin("标题",“内容”,"长",“宽”);

最终效果如下:

posted @ 2013-01-07 15:26  天殇月痕  阅读(402)  评论(0编辑  收藏  举报