JS 弹出框(支持IFRAME)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<script>
function PopWin(str){
      var msgw,msgh,bordercolor;
      msgw=400;//提示窗口的宽度
      msgh=210;//提示窗口的高度
      titleheight=25 //提示窗口标题高度
      bordercolor="#336699";//提示窗口的边框颜色
      titlecolor="#99CCFF";    //提示窗口的标题颜色
     
      
      bgObj=document.createElement("div");//创建一个div对象(背景层)
      msgObj=document.createElement("div")//创建一个div对象(提示框层)
      var title=document.createElement("h4");//创建一个h4对象(提示框标题栏)
     
        // 设置对话框的宽和高
      this.setWidthHeight = function(w, h){
        msgw = w;
        msgh = h;
      }
     
      this.show = function(){

        var sWidth,sHeight;
        sWidth=document.body.offsetWidth;//浏览器工作区域内页面宽度
        sHeight=screen.height;//屏幕高度(垂直分辨率)
       
        var scrollTop = document.documentElement.scrollTop;
       
         if(self.frameElement && self.frameElement.tagName=="IFRAME"){
             if(self.frameElement.contentDocument){
                sWidth  = self.frameElement.contentDocument.body.offsetWidth;
                sHeight = self.frameElement.contentDocument.body.offsetHeight; 
             }else{
                sWidth  = self.frameElement.Document.body.offsetWidth;
                sHeight = self.frameElement.Document.body.offsetHeight; 
             }
            scrollTop = window.parent.document.documentElement.scrollTop;
          }
       
       
        //背景层(大小与窗口有效区域相同,即当弹出对话框时,背景显示为放射状透明灰色)
        //this.bgObj=document.createElement("div");//创建一个div对象(背景层)
        //定义div属性,即相当于
        //<div id="bgDiv" style="position:absolute; top:0; background-color:#777; filter:progid:DXImagesTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75); opacity:0.6; left:0; width:918px; height:768px; z-index:10000;"></div>
        bgObj.setAttribute('id','bgDiv');
        bgObj.style.position="absolute";
        bgObj.style.top="0";
        bgObj.style.background="#777";
        bgObj.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75";
        bgObj.style.opacity="0.6";
        bgObj.style.left="0";
        bgObj.style.width=sWidth + "px";
        bgObj.style.height=sHeight + "px";
        bgObj.style.zIndex = "10000";
        document.body.appendChild(bgObj);//在body内添加该div对象
       
       
        //this.msgObj=document.createElement("div")//创建一个div对象(提示框层)
        //定义div属性,即相当于
        //<div id="msgDiv" align="center" style="background-color:white; border:1px solid #336699; position:absolute; left:50%; top:50%; font:12px/1.6em Verdana,Geneva,Arial,Helvetica,sans-serif; margin-left:-225px; margin-top:npx; width:400px; height:100px; text-align:center; line-height:25px; z-index:100001;"></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 = "50%";
        msgObj.style.top =  scrollTop + 150 + "px";
        msgObj.style.font="12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif";
        msgObj.style.marginLeft = "-225px" ;
        msgObj.style.marginTop = "0px";
        msgObj.style.width = msgw + "px";
        msgObj.style.height =msgh + "px";
        msgObj.style.textAlign = "center";
        msgObj.style.lineHeight ="25px";
        msgObj.style.zIndex = "10001";
       
        //var title=document.createElement("h4");//创建一个h4对象(提示框标题栏)
        //定义h4的属性,即相当于
        //<h4 id="msgTitle" align="right" style="margin:0; padding:3px; background-color:#336699; filter:progid:DXImageTransform.Microsoft.Alpha(startX=20, startY=20, finishX=100, finishY=100,style=1,opacity=75,finishOpacity=100); opacity:0.75; border:1px solid #336699; height:18px; font:12px Verdana,Geneva,Arial,Helvetica,sans-serif; color:white; cursor:pointer;" οnclick="">关闭</h4>
        title.setAttribute("id","msgTitle");
        title.setAttribute("align","right");
        title.style.margin="0";
        title.style.padding="3px";
        title.style.background=bordercolor;
        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.border="1px solid " + bordercolor;
        title.style.height="18px";
        title.style.font="12px Verdana, Geneva, Arial, Helvetica, sans-serif";
        title.style.color="white";
        title.style.cursor="pointer";
        title.innerHTML="关闭";
        title.οnclick=this.removeObj;
       
        //var button=document.createElement("input");//创建一个input对象(提示框按钮)
        //定义input的属性,即相当于
        //<input type="button" align="center" style="width:100px; align:center; margin-left:250px; margin-bottom:10px;" value="关闭">
        //button.setAttribute("type","button");
        //button.setAttribute("value","关闭");
        //button.style.width="60px";
        //button.style.align="center";
        //button.style.marginLeft="250px";
        //button.style.marginBottom="10px";
        //button.style.background=bordercolor;
        //button.style.border="1px solid "+ bordercolor;
        //button.style.color="white";
        //button.οnclick=this.removeObj;
       
        document.body.appendChild(msgObj);//在body内添加提示框div对象msgObj
        document.getElementById("msgDiv").appendChild(title);//在提示框div中添加标题栏对象title
       
        var txt=document.createElement("p");//创建一个p对象(提示框提示信息)
        //定义p的属性,即相当于
        //<p style="margin:1em 0;" id="msgTxt">测试效果</p>
        txt.style.margin="1em 0"
        txt.setAttribute("id","msgTxt");
        txt.innerHTML=str;//来源于函数调用时的参数值
        document.getElementById("msgDiv").appendChild(txt);//在提示框div中添加提示信息对象txt
        //document.getElementById("msgDiv").appendChild(button);//在提示框div中添加按钮对象button
       }
     
       this.removeObj = function(){//点击标题栏触发的事件
         document.body.removeChild(bgObj);//删除背景层Div
         document.getElementById("msgDiv").removeChild(title);//删除提示框的标题栏
         document.body.removeChild(msgObj);//删除提示框层
       }   
}
</script>

<input type="button" οnclick="test()" value="点击"/>
 
 <script>
     var w;
     function test(){
         var str = '请选择有效期:<br/><input type="text" name="sDate" id="sDate"  value=""/>--<input type="text" name="eDate" id="eDate" value=""/>';
         str = str + '<br/><input type="button" οnclick="closeWin();" value="close"/>';
         w = new PopWin(str);
         w.setWidthHeight(400,150);
         w.show();
     }
     function closeWin(){
         w.removeObj();
     }
 </script>
</body>
</html>

 

说明:

      源代码来源于网络,我做了一些修改。 针对自己的情况,适当的调一下值,应该就可以满足你的需求了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值