javascript的open函数弹出来一个指定大小的页面以后怎么让鼠标不能点吉父页面啊?
3个回答
展开全部
你的要求是弹出一个模态窗口,open函数弹出的是普通窗口,必须使用showModalDialog
但是现在一般的浏览器会限制弹出窗口,可以考虑使用浮动层和遮罩层模拟模态对话框的效果。
先生成一个能够覆盖整个页面的层,盖在页面之上,这样页面里面的元素就不能被鼠标点击了,然后再在这个覆盖层之上再生成一个层,用来显示新窗口内容。一个简单例子:
<script>
function openDialog(str){
var _body = document.getElementsByTagName('body')[0];
var _mask = document.createElement('DIV');
var _win = document.createElement('DIV');
with(_mask.style){
position = 'absolute';
left = '0px';
top = '0px';
width = '100%';
height = _body.offsetHeight+'px';
background = '#000000';
opacity = '0.5';
}
_body.appendChild(_mask);
with(_win.style){
position = 'absolute';
width = '400px';
height = '300px';
left = ((_body.offsetWidth-400)/2)+'px';
top = '100px';
}
_win.innerHTML = str;
_body.appendChild(_win);
}
</script>
但是现在一般的浏览器会限制弹出窗口,可以考虑使用浮动层和遮罩层模拟模态对话框的效果。
先生成一个能够覆盖整个页面的层,盖在页面之上,这样页面里面的元素就不能被鼠标点击了,然后再在这个覆盖层之上再生成一个层,用来显示新窗口内容。一个简单例子:
<script>
function openDialog(str){
var _body = document.getElementsByTagName('body')[0];
var _mask = document.createElement('DIV');
var _win = document.createElement('DIV');
with(_mask.style){
position = 'absolute';
left = '0px';
top = '0px';
width = '100%';
height = _body.offsetHeight+'px';
background = '#000000';
opacity = '0.5';
}
_body.appendChild(_mask);
with(_win.style){
position = 'absolute';
width = '400px';
height = '300px';
left = ((_body.offsetWidth-400)/2)+'px';
top = '100px';
}
_win.innerHTML = str;
_body.appendChild(_win);
}
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
open函数做不到,可以用window.showModalDialog()函数,语法很类似,但参数不同。
例子:
<script>
window.showModalDialog("modal.htm","","dialogWidth=200px;dialogHeight=100px");
</script>
例子:
<script>
window.showModalDialog("modal.htm","","dialogWidth=200px;dialogHeight=100px");
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思路:
open函数肯定不行的,不同的浏览器对弹出页面支持力度不同
1.做一个与窗口同等大小的<div> 设置透明度,z-index可以设的高一些,display:none
2.再做一个<div>,模拟弹出的页面,z-index比第一步做的div高1。display:none
3.执行某项操作后,将上面两个div都显示出来,用第一个div盖住下面的页面,让鼠标不能点击
open函数肯定不行的,不同的浏览器对弹出页面支持力度不同
1.做一个与窗口同等大小的<div> 设置透明度,z-index可以设的高一些,display:none
2.再做一个<div>,模拟弹出的页面,z-index比第一步做的div高1。display:none
3.执行某项操作后,将上面两个div都显示出来,用第一个div盖住下面的页面,让鼠标不能点击
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询