JS模態對話方塊彈出(對話方塊嵌入網頁)
阿新 • • 發佈:2018-12-31
<html> <head> <title>JS彈出一個網頁對話方塊,後面全變灰,並不可用。</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <script type="text/javascript" language="javascript"> function sAlert(str){ //背景層(大小與視窗有效區域相同,即當彈出對話方塊時,背景顯示為放射狀透明灰色) var sWidth,sHeight; sWidth=document.body.offsetWidth;//瀏覽器工作區域內頁面寬度 或使用 screen.width//螢幕的寬度 sHeight=screen.height;//螢幕高度(垂直解析度) var bgObj=document.createElement("div");//建立一個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物件 // 定義 var msgW,msgH,bordercolor; msgW=600;//提示視窗的寬度 msgH=400;//提示視窗的高度 titleheight=25//提示視窗標題高度 bordercolor="#FF0000";//提示視窗的邊框顏色 // ----------------------------- 提示資訊 ----------------------------- //建立一個div物件(提示框層) var msgObj=document.createElement("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 = "50%"; msgObj.style.marginLeft = "-225px" ; msgObj.style.marginTop = -75+document.documentElement.scrollTop+"px"; 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;" onclick="">關閉</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.onclick=removeObj; // ----------------------------- 點選標題欄觸發的事件 ----------------------------- function removeObj(){//點選標題欄觸發的事件 document.body.removeChild(bgObj);//刪除背景層Div document.getElementById("msgDiv").removeChild(title);//刪除提示框的標題欄 document.body.removeChild(msgObj);//刪除提示框層 } // ----------------------------- 提示資訊內容 ----------------------------- var txt=document.createElement("div");//建立一個p物件(提示框提示資訊) //定義p的屬性,即相當於 //<p style="margin:1em 0;" id="msgTxt">測試效果</p> txt.style.margin="1em 0" txt.setAttribute("id","msgTxt"); // txt.innerHTML=str;//來源於函式呼叫時的引數值 // txt.innerHTML=abc.html; var frameConn = document.createElement("IFRAME"); // frameConn.src = "abc.html"; frameConn.height="350"; frameConn.width ="580"; frameConn.src="http://www.baidu.com"; document.body.appendChild(msgObj);//在body內新增提示框div物件msgObj document.getElementById("msgDiv").appendChild(title);//在提示框div中新增標題欄物件title document.getElementById("msgDiv").appendChild(frameConn);//在提示框div中新增提示資訊物件txt document.getElementById("msgDiv").appendChild(button);//在提示框div中新增按鈕物件button } </script> </head> <body> JS彈出一個網頁對話方塊,後面全變灰,並不可用。思路:一個覆蓋整個頁面的層,設定透明度0 <input type="button" value="點選這裡" onClick="sAlert('測試效果<br/>嗯!效果還不錯!');" /> </body> </html>
效果:
在 http://blog.csdn.net/benbenrh/article/details/3305418 基礎上改編