JS模态窗口返回值兼容问题的完美解决方法


Posted in Javascript onMay 28, 2016

因系统要兼容原IE已使用的关闭方法,经调试测得,需对window.dialogArguments进行再较验,不然易出问题。

function OKEnd(vals) {
  if (vals == null) vals = "TRUE";
  if (typeof (window.opener) == "undefined") {
    if (typeof (window.dialogArguments) != "undefined") {
      if (window.dialogArguments && window.dialogArguments != null) {
        window.opener = window.dialogArguments;
        if (window.opener && window.opener != null) {
          window.opener.ReturnValue = vals;
        }
      }
    }
  }
  else {
    if (window.opener && window.opener != null) {
      window.opener.ReturnValue = vals;
    }
  }
  window.returnValue = vals;
  self.close();
}

返回值接收的,只需在原有IE的接收模式下,多较验一下opener就可以了,如下:

//选择变更部门
     function SetOrganizeTree2() { var url="弹出页面";
       var ret = window.showModalDialog(url, window, "dialogWidth=400px;dialogHeight=500px;status=no;help=no;scroll=yes;resizable=yes;");
       if (typeof (ret) == "undefined") {
         ret = window.ReturnValue;
       }
       if (ret) {
         document.getElementById("hidDeptCode2").value = ret;
         document.getElementById("btnDeptCodeAdd").click();
       }
       return false;
     }

JS模态窗口返回值兼容问题完美解决方法

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();

原理探讨:

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

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

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

以上这篇JS模态窗口返回值兼容问题的完美解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
FCK调用方法..
Dec 21 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
Apr 01 Javascript
js限制文本框为整数和货币的函数代码
Oct 13 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
Nov 28 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
js保留两位小数使用toFixed实现
Jul 29 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
浅析Node.js:DNS模块的使用
Nov 23 Javascript
jQuery仿移动端支付宝键盘的实现代码
Aug 15 jQuery
微信小程序实现卡片左右滑动效果的示例代码
May 01 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
JavaScript实现点击图片换背景
Nov 20 Javascript
js弹出窗口返回值的简单实例
May 28 #Javascript
JS获取子窗口中返回的数据实现方法
May 28 #Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
May 27 #Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 #Javascript
全面解析多种Bootstrap图片轮播效果
May 27 #Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 #Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
May 27 #Javascript
You might like
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
jquery select下拉框操作的一些说明
2010/04/02 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
jQuery 图片切换插件(代码比较少)
2012/05/07 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
浅谈JavaScript异常处理语句
2015/06/26 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
AJAX XMLHttpRequest对象创建使用详解
2020/08/20 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
Python3 max()函数基础用法
2019/02/19 Python
Python使用import导入本地脚本及导入模块的技巧总结
2019/08/07 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
美丽乡村建设实施方案
2014/03/23 职场文书
经典团队口号
2014/06/06 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
工作证明书
2015/06/15 职场文书
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
pycharm无法安装cv2模块问题
2022/05/20 Python