如何在Firefox、Mozilla 浏览器实现 showModalDialog 功能 用一个 <iframe> 来模拟模态框 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 window.open(url, "", "model=yes"); <input type="button" value="打开对话框" onclick="showDialog('2.htm')"/><SCRIPT LANGUAGE="JavaScript"><!--function showDialog(url){ if( document.all ) //IE { feature="dialogWidth:300px;dialogHeight:200px;status:no;help:no"; window.showModalDialog(url,null,feature); } else { //modelessDialog可以将modal换成dialog=yes feature ="width=300,height=200,menubar=no,toolbar=no,location=no,"; feature+="scrollbars=no,status=no,modal=yes"; window.open(url,null,feature); }}//--></SCRIPT> 由于代码是嵌在原来的项目里的, 独立出来比较麻烦, 我给你说说思路吧:我的项目用的是框架网页, 用 iframe 做子帧的:top.aspx:DIV.transparent{ TOP: 0px; ; LEFT: 0px; Z-INDEX: 8888; POSITION: absolute; BACKGROUND-IMAGE: url(transparent.gif); /* 这是一张透明图片 */ WIDTH: 100%; HEIGHT: 100%;}<div style="DISPLAY: none" class="transparent" id="divLock" oncontextmenu="return false;"><!-- 作为锁屏用的透明层 --></div><iframe name="MzVirtrulWindow" id="MzVirtrulWindow" width="0" height="0" frameborder="0" style="DISPLAY: none; Z-INDEX: 9000; POSITION: absolute" src="window.htm"></iframe>根据参数显示这个隐藏的 iframe, 显示那个锁父页面的层, 这个透明的图片背景层能够锁住大部分元素, 除了select flash object之外的元素都被锁定不能操作了, 而这个 iframe 加载你特定的页面进行操作, 关闭 iframe 其它就是隐藏它, 并将原来的那个锁定层隐藏掉. 这样大致可以在非IE的浏览器里实现弹出窗口了 不用那么麻烦吧?对于非IE,你最好有装上它亲自测试。在window.open的参数里,试试这些之一: modal=yes|no dialog=yes|no dependance=yes|no可能有你要的。不过据我的经验,在Netscape、FireFox中,都不能像ie的showModalDialog那样强制留在最上面,也不能像showModalDialog那样还可以返回一个值。(ie这点真好!)非IE的window.open目前只能做到类似ie的showModelessDialog的效果,通过window.opener获得对母窗口的引用。而ie的模式对话框和无模式对话框是通过传参数的。 to cuixiping(无心) :firefox下的window.open是可以强制留在最上面的,modal就可以的 同时纠正一下楼主:showModalDialog 不是微软 JScript 脚本语言的特殊功能,而是IE的特殊支持,它是window对象的方法。即使不是JScript,如VBScript也可以调用该方法的。至于说“标准JavaScript不提供...”这个说法更不恰当,最早的javascript是netscape公司的,后来的jscript是ms公司的,能说谁的标准不标准吗?又不是什么官方机构. 而且,以msie的影响力,似乎JScript已经成为事实上的标准了。 实现OnLoad 和UnLoad 的配合使用 使用三维控件时滚动条的问题 谁能给个这样的js代码 如何将java参数传递给js? 如何让onblur在窗口关闭时不做检查呢 征集控件ing!!! 在线求教js打印问题,100分着急!!!! iframe之间操作parent.document.all.frame_main.FormMain.submit();对吗 JS 中使用那个函数可得到字符的ASC值?或者如何用其他办法得到? javacript 初学者的问题(急,急急急急!!!!!!!!!) 关于模态窗口保存参数的问题 请问在验证注册信息时,用JavaScript能实现限制次数吗?
<SCRIPT LANGUAGE="JavaScript">
<!--
function showDialog(url)
{
if( document.all ) //IE
{
feature="dialogWidth:300px;dialogHeight:200px;status:no;help:no";
window.showModalDialog(url,null,feature);
}
else
{
//modelessDialog可以将modal换成dialog=yes
feature ="width=300,height=200,menubar=no,toolbar=no,location=no,";
feature+="scrollbars=no,status=no,modal=yes";
window.open(url,null,feature);
}
}
//-->
</SCRIPT>
我的项目用的是框架网页, 用 iframe 做子帧的:
top.aspx:
DIV.transparent
{
TOP: 0px; ;
LEFT: 0px;
Z-INDEX: 8888;
POSITION: absolute;
BACKGROUND-IMAGE: url(transparent.gif); /* 这是一张透明图片 */
WIDTH: 100%;
HEIGHT: 100%;
}
<div style="DISPLAY: none" class="transparent" id="divLock" oncontextmenu="return false;"><!-- 作为锁屏用的透明层 --></div>
<iframe name="MzVirtrulWindow" id="MzVirtrulWindow" width="0" height="0" frameborder="0" style="DISPLAY: none; Z-INDEX: 9000; POSITION: absolute" src="window.htm"></iframe>根据参数显示这个隐藏的 iframe, 显示那个锁父页面的层, 这个透明的图片背景层能够锁住大部分元素, 除了select flash object之外的元素都被锁定不能操作了, 而这个 iframe 加载你特定的页面进行操作, 关闭 iframe 其它就是隐藏它, 并将原来的那个锁定层隐藏掉. 这样大致可以在非IE的浏览器里实现弹出窗口了
modal=yes|no
dialog=yes|no
dependance=yes|no
可能有你要的。不过据我的经验,在Netscape、FireFox中,都不能像ie的showModalDialog那样强制
留在最上面,也不能像showModalDialog那样还可以返回一个值。(ie这点真好!)非IE的window.open目前只能做到类似ie的showModelessDialog的效果,通过window.opener
获得对母窗口的引用。而ie的模式对话框和无模式对话框是通过传参数的。
firefox下的window.open是可以强制留在最上面的,modal就可以的