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 相关文章推荐
理解JAVASCRIPT中hasOwnProperty()的作用
Jun 05 Javascript
jquery 列表双向选择器之改进版
Aug 09 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 Javascript
JS+CSS实现仿新浪微博搜索框的方法
Feb 24 Javascript
jQuery实现的简洁下拉菜单导航效果代码
Aug 26 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
12 款 JS 代码测试必备工具(翻译)
Dec 13 Javascript
React-Native左右联动List的示例代码
Sep 21 Javascript
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
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
php读取数据库信息的几种方法
2008/05/24 PHP
PHP安全配置详细说明
2011/09/26 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
js 连续赋值的简单实现
2016/06/13 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
详解webpack babel的配置
2018/01/09 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
React实现轮播效果
2020/08/25 Javascript
python列表list保留顺序去重的实例
2018/12/14 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
俄语专业毕业生求职信
2014/07/12 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
2014年减负工作总结
2014/12/10 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
运动会跳远广播稿
2015/08/19 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书