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 相关文章推荐
jquery插件制作 手风琴Panel效果实现
Aug 17 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
JS通过ajax动态读取xml文件内容的方法
Mar 24 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 Javascript
JavaScript入门系列之知识点总结
Mar 24 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
jquery中绑定事件的异同
Feb 28 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
Nov 29 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
Feb 28 Javascript
vue实现在进行增删改操作后刷新页面
Aug 05 Javascript
Vue图片裁剪组件实例代码
Jul 02 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
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
图片上传即时显示缩略图的js代码
2009/05/27 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
react-router-dom 嵌套路由的实现
2020/05/02 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
使用Python编写vim插件的简单示例
2015/04/17 Python
Python中List.count()方法的使用教程
2015/05/20 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
python 正确保留多位小数的实例
2018/07/16 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
python中可以声明变量类型吗
2020/06/18 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
不错的求职信范文
2014/07/20 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis