码迷,mamicode.com
首页 > 其他好文 > 详细

模态窗口返回值兼容解决

时间:2014-12-04 23:06:05      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:ar   os   sp   问题   log   bs   ef   amp   nbsp   

1、打开弹出窗口时把 window 作为第二个参数传入。

 var result = window.showModalDialog(url, window, "dialogWidth=" + width + "px;dialogHeight=" + height + "px;resizable:yes;")

 if (typeof (result) == ‘undefined‘) {

         result = window.ReturnValue;

     }

     return result;

2、在弹出窗口中,执行如下JS,以接收传入的window

 if (typeof (window.opener) == ‘undefined‘) window.opener = window.dialogArguments; 

 

3、弹出窗口关闭前,调用如下JS赋返回值

 window.retureValue = vals;

        if (window.opener && window.opener != null)

                window.opener.ReturnValue = vals;

 

        window.close();

 


博客园davidyang78原创,转载请保留此信息

 

 

 

原理探讨:

 

chrome下,标准方法,在弹出页面不回发的情况下,是可以返回值的。 有回发则不能正常返回值。此方法可以解决。

 

IE下标准方法,有时不明原因不能正确返回值,此方法可解决。

 

FF未详细测试,应该问题不大。

 

 

 

PS1: chrome的模态弹出窗体比IE友好的多。

 

PS2:模态弹出窗体是一种很好理解和简单的模式,使各页面偶合不用太紧密,有利于页面重用。

 

PS3:以前针对此问题,写过一个不太成熟的解决方法。 在网上查此类问题发现被大量转载,但是没有注明出处。希望此文被转载时能注明出处。

 

模态窗口返回值兼容解决

标签:ar   os   sp   问题   log   bs   ef   amp   nbsp   

原文地址:http://www.cnblogs.com/Fantasy0516/p/4143994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!