html 锁定页面(js遮罩层弹出div效果)


Posted in Javascript onOctober 27, 2009
<htmlxmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/> 
<title>UntitledDocument</title> 
<script> 
function createIframe(){ 
//mask遮罩层 
var newMask=document.createElement("div"); 
newMask.id="mDiv"; 
newMask.style.position="absolute"; 
newMask.style.zIndex="1"; 
_scrollWidth=Math.max(document.body.scrollWidth,document.documentElement.scrollWidth); 
_scrollHeight=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight); 
// _scrollHeight = Math.max(document.body.offsetHeight,document.documentElement.scrollHeight); 
newMask.style.width=_scrollWidth+"px"; 
newMask.style.height=_scrollHeight+"px"; 
newMask.style.top="0px"; 
newMask.style.left="0px"; 
newMask.style.background="#33393C"; 
//newMask.style.background = "#FFFFFF"; 
newMask.style.filter="alpha(opacity=40)"; 
newMask.style.opacity="0.40"; 
newMask.style.display='none'; 
var objDiv=document.createElement("DIV"); 
objDiv.id="div1"; 
objDiv.name="div1"; 
objDiv.style.width="480px"; 
objDiv.style.height="200px"; 
objDiv.style.left=(_scrollWidth-480)/2+"px"; 
objDiv.style.top=(_scrollHeight-200)/2+"px"; 
objDiv.style.position="absolute"; 
objDiv.style.zIndex="2"; //加了这个语句让objDiv浮在newMask之上 
objDiv.style.display="none"; //让objDiv预先隐藏 
objDiv.innerHTML=' <div id="drag" style="position:absolute;height:20px;width:100%;z-index:10001;top:0; background-color:#0033FF;cursor:move ;" align="right"> <input type=button value="X" onclick="HideIframe(document.getElementById(\'mDiv\'),document.getElementById(\'div1\'));"/> </div>'; 
//更改了X按钮为触发关闭事件。 
objDiv.style.border="solid #0033FF 3px;"; 
var frm=document.createElement("iframe"); 
frm.id="ifrm"; 
frm.name="ifrm"; 
frm.style.position="absolute"; 
frm.style.width="100%"; 
frm.style.height=180; 
frm.style.top=20; 
frm.style.display=''; 
frm.frameborder=0; 
objDiv.appendChild(frm); 
// newMask.appendChild(objDiv); //问题出在这里:你把frame所在的div变成了 newMask的子元素,当newMask透明度更改时,当然会影响到frame 
document.body.appendChild(newMask); 
document.body.appendChild(objDiv); 
var objDrag=document.getElementById("drag"); 
var drag=false; 
var dragX=0; 
var dragY=0; 
objDrag.attachEvent("onmousedown",startDrag); 
function startDrag(){ 
if(event.button==1&&event.srcElement.tagName.toUpperCase()=="DIV"){ 
objDrag.setCapture(); 
objDrag.style.background="#0000CC"; 
drag=true; 
dragX=event.clientX; 
dragY=event.clientY; 
} 
}; 
objDrag.attachEvent("onmousemove",Drag); 
function Drag(){ 
if(drag){ 
var oldwin=objDrag.parentNode; 
oldwin.style.left=oldwin.offsetLeft+event.clientX-dragX; 
oldwin.style.top=oldwin.offsetTop+event.clientY-dragY; 
oldwin.style.left=event.clientX-100; 
oldwin.style.top=event.clientY-10; 
dragX=event.clientX; 
dragY=event.clientY; 
} 
}; 
objDrag.attachEvent("onmouseup",stopDrag); 
function stopDrag(){ 
objDrag.style.background="#0033FF"; 
objDrag.releaseCapture(); 
drag=false; 
}; 
} 
function htmlEditor(){ 
var frm=document.getElementById("ifrm"); 
var objDiv=document.getElementById("div1"); 
var mDiv=document.getElementById("mDiv"); 
mDiv.style.display=''; 
var iframeTextContent=''; 
iframeTextContent+=' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'; 
iframeTextContent+=' <html xmlns="http://www.w3.org/1999/xhtml">'; 
iframeTextContent+=' <head>'; 
iframeTextContent+=' <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />'; 
iframeTextContent+=' </head>'; 
iframeTextContent+=' <body>'; 
iframeTextContent+=' <table>'; 
iframeTextContent+=' <tr>'; 
iframeTextContent+=' <td>Name </td>'; 
iframeTextContent+=' <td> <input type="text" value="" /> </td>'; 
iframeTextContent+=' </tr>'; 
iframeTextContent+=' <tr>'; 
iframeTextContent+=' <td>Email </td>'; 
iframeTextContent+=' <td> <input type="text" value="" /> </td>'; 
iframeTextContent+=' </tr>'; 
iframeTextContent+=' <tr>'; 
iframeTextContent+=' <td> <input type="button" id="btGo" value="Go" /> </td>'; 
iframeTextContent+=' </tr>'; 
iframeTextContent+=' </table>'; 
iframeTextContent+=' </body>'; 
iframeTextContent+=' </html>'; 
frm.contentWindow.document.designMode='off'; 
frm.contentWindow.document.open(); 
frm.contentWindow.document.write(iframeTextContent); 
frm.contentWindow.document.close(); 
objDiv.style.display = ""; //显示浮动的div 
var objGo=frm.contentWindow.document.getElementById("btGo"); 
objGo.attachEvent("onclick",function (){ 
HideIframe(mDiv,objDiv); 
}); 
} function HideIframe(mDiv,objDiv){ 
mDiv.style.display='none'; 
objDiv.style.display = "none"; //隐藏浮动的div 
} 
</script> 
</head> 
<body onLoad="createIframe()"> 
<table> 
<tr> 
<td>aa</td> 
<td><input type="text"/></td> 
</tr> 
<tr> 
<td>bb</td> 
<td><input type="text"/></td> 
</tr> 
</table> 
[br] 
<input type="button"id="tt"name="tt"value="Click"onClick="htmlEditor()"/> 
</body> 
</html>
Javascript 相关文章推荐
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
jQuery UI Autocomplete 体验分享
Feb 14 Javascript
javascript使用location.search的示例
Nov 05 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
Feb 12 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
Apr 17 Javascript
js点击返回跳转到指定页面实现过程
Aug 20 Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 Javascript
使用jquery获取url及url参数的简单实例
Jun 14 Javascript
Javascript日期格式化format函数的使用方法
Aug 30 Javascript
vue中的ref和$refs的使用
Nov 22 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 #Javascript
Ajax+Json 级联菜单实现代码
Oct 27 #Javascript
javascript 关于# 和 void的区别分析
Oct 26 #Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 #Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
Oct 26 #Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 #Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 #Javascript
You might like
PHP中的日期及时间
2006/11/23 PHP
PHP加密解密实例分析
2015/12/25 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
JScript的条件编译
2007/05/29 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
JavaScript中闭包的写法和作用详解
2016/06/29 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
NodeJS使用Range请求实现下载功能的方法示例
2018/10/12 NodeJs
[01:18]DOTA2超级联赛专访hanci ForLove淘汰感言曝光
2013/06/04 DOTA
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
跟老齐学Python之for循环语句
2014/10/02 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
一份python入门应该看的学习资料
2018/04/11 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
个人对照检查材料
2014/02/12 职场文书
好学生评语大全
2014/05/05 职场文书
师范大学生求职信
2014/06/13 职场文书
诚实守信演讲稿
2014/09/01 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers