解决window.showModalDialogFirefox无法支持  

2014-11-27 22:24:21|  分类: UI设计 |  标签: |举报 |字号大中小 订阅

用微信  “扫一扫”

将文章分享到朋友圈。

用易信  “扫一扫”

将文章分享到朋友圈。

下载LOFTER 我的照片书  |

网页设计时,实现页面以弹出的方式进行下一个界面的链接

在网页程序中,
有时我们会希望使用者按下按钮后开启一个保持在原窗口前方的子窗口,
而在IE中,我们可以使用showModalDialog来达成,
语法如下 :

vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])

范例:

window.showModalDialog("openwin.html","Arguments","dialogHeight: 200px; dialogWidth: 200px; dialogTop: 10px; dialogLeft: 10px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;");

但是.在Firefox中却没有showModalDialog这东西,
而在FireFox中我们只能使用window.open实现这样的功能,
window.open的语法如下 :

oNewWindow = window.open( [sURL] [, sName] [, sFeatures] [, bReplace])

只是,在Firefox下,window.open的参数中,sFeature多了一些功能设定,
而在FireFox下要让开启的窗口跟IE的showModalDialog一样的话,
只要在sFeatures中加个modal=yes就可以了,
范例如下:

window.open('openwin.html','newWin','modal=yes,width=200,height=200,resizable=no,scrollbars=no');

提到了子窗口,不得不提的就是子窗口跟母窗口间的交互操作,
因为我想很多人开启对话窗口应该都是为了将操作完的结果丢回去给母窗口...

如果是用showModalDialog的话,
在子窗口中要存取母窗口的函数的话,
要注意两个地方,
1.(母窗口中)开启窗口:

window.showModalDialog("openwin.html",self,'modal=yes,width=775,height=700,resizable=no,scrollbars=no');

在第二个参数(vArguments),改成self.

2.(子窗口中)调用母窗口的函数:

window.dialogArguments.ShowMsg(obj.value);

ShowMsg为母窗口中的函数.

而使用window.open的话,
则是要注意一个地方,
1.(子窗口中)调用母窗口的函数:

window.opener.ShowMsg(obj.value);

使用window.opener去接母窗口的对象.

如此一来,只要再透过navigator.appName去判断浏览器为何,
就可以写一个IE与FireFox兼容的函数...

例子如下:

在一个父窗口中打开一个子窗口,并把子窗口的值传递给父窗口

在父窗口中:

<script language="javascript">
function colorpick(obj){
if (window.showModalDialog!=null) //IE判断
{
var smd= window.showModalDialog("Default2.aspx","","dialogWidth:225px;dialogHeight:170px;status:no;help:no;scrolling=no;scrollbars=no");
if(smd!=null)
obj.style.background=rtn;
return;
}
else
{
this.returnAction=function(strResult){
if(strResult!=null)
obj.style.background=strResult;
}
window.open("Default2.aspx","","width=225,height=170,menubar=no,toolbar=no,location=no,scrollbars=no,status=no,modal=yes");
return;
}

}
</script>

在子窗口中:

function act(RGB) {
if (window.showModalDialog!=null)//IE判断
{
parent.window.returnValue="#"+RGB;
window.close();//firefox不支持

}
else
{
window.opener.returnAction("#"+RGB);
top.close();//IE和FireFox都支持
}
}

转载于:https://www.cnblogs.com/tigercnblog/p/6419271.html

解决window.showModalDialog在Firefox无法支持相关推荐

  1. JavaScript中的window.close在FireFox和Chrome上不能正常动作的解决方法

    原文:JavaScript中的window.close在FireFox和Chrome上不能正常动作的解决方法 JS中关闭窗口的方法window.close()在IE上能够正常动作,而在FireFox和 ...

  2. window.showModalDialog不兼容解决办法

    1.传值的解决办法 1.直接设置父窗口的DOM对象的值. window.opener.document.getElementById("parentWindowControlId" ...

  3. 替换window.showModalDialog 已解决!!!

    记录一下 最近在维护一个项目,使用IE一切正常,但是切谷歌的话 正常登陆都不行了. 检查了一下 发现报错. 后来查了一下 发现 window.showModalDialog 方法在很久以前就被弃用了! ...

  4. window.showModalDialog();会弹出当前页面脚本发生错误部分解决方法

    说明一下下面都是我在做项目时的方法但查window.showModalDialog();会弹出当前页面脚本发生错误时没有方法所以我选择一个自认为可以的方法解决这个问题 一.首先说说我要做的效果是什么: ...

  5. window.showModalDialog模式窗口无法在子窗口访问解决办法

    window.showModalDialog打开的模式窗口无法在子窗口访问 如:window.showModalDialog("A.aspx", null, "help: ...

  6. 总结JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    前些日子,一直奔波于这三种操作,想想以后会常用,干脆整理下来,供自己以后查看.也给大家分享一下! 以下面写出自己认为有用的操作和代码. 第一次在园里面写,肯定有很多不足够之处,希望大家多多指点. 一. ...

  7. window.showModalDialog弹出模态窗口

    [转http://www.cnblogs.com/zhouzhaokun/archive/2011/11/14/2248523.html] 在我们平时的B/S web开发当中,可能很多时候我们需要有这 ...

  8. window.showModalDialog()用法及注意事项

    今天在项目中用到了弹出子窗口,就想到了用JavaScript实现的两种方法,一个是window.open();一个是window.showModalDialog()方法,后者是存在父子关系的一种弹出窗 ...

  9. 前台技术--window.showModalDialog带来的浏览器兼容问题

    双击域的实现:http://blog.csdn.net/gaopeng0071/article/details/21179619, 继此篇博文,讲述的双击域实现,在后续发现使用window.showM ...

最新文章

  1. python实现简单的用户密码登录控制(输入三次就锁定用户)
  2. Retrofit全攻略——进阶篇
  3. c语言用法 我说火罐火车 刘华火车,五塘村社区建“火车头广场”
  4. python是干什么用的视频-python基础教程千锋最新视频学完之后可以做什么
  5. start ssh-agent
  6. 对称加密算法原理--OpenSSL演示、iOS代码运用及CCCrypt安全隐患
  7. eclipse自动补全失效解决办法
  8. 3D Mapping with an RGB-D Camera(RGBD SLAM V2 )论文笔记
  9. 机器学习算法总结--线性回归和逻辑回归
  10. 【转】TCP/IP协议到底在讲什么?【乐搏TestPro】
  11. python网课视频下载-python老男孩网课22期视频教程全
  12. 信号(signal)
  13. rip和ospf vrrp vlan综合实验
  14. 水星路由器设置成交换机
  15. 京东用了哪些大数据平台产品体系?
  16. 沉默的大多数(王小波)
  17. 【038】翼辉携手太空链:拥抱商业航天发展
  18. 048 《20-30岁,我拿十年做什么》小感
  19. SAS学习笔记5:删除字符串空格-left/right/trim/strip/compress/compbl等函数的比较
  20. android 8.0 edittext,android – Autofill框架更新8.1导致EditText崩溃

热门文章

  1. Python数据分析 | 分析微信公众号历史发文信息
  2. python判断用户名是否合法_Python校验用户名是否合法示例
  3. SQL注入系列总结二
  4. python制作图例_python plt可视化——打印特殊符号和制作图例代码
  5. 计算机组成原理试验报告,计算机组成原理试验报告
  6. Qt on Android:应用截屏
  7. android仿微信雷达 头像效果 自定义view
  8. 常用的激活函数(Sigmoid、Tanh、ReLU等)
  9. 自媒体短视频怎么把文字转配音?
  10. chrome应用商店打不开,怎么下载vue-devtools并安装呢?