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 相关文章推荐
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
基于node.js的快速开发透明代理
Dec 25 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
smartcrop.js智能图片裁剪库
Oct 14 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
May 12 Javascript
javascript类型系统_正则表达式RegExp类型详解
Jun 24 Javascript
js 点击a标签 获取a的自定义属性方法
Nov 21 Javascript
angular实现表单验证及提交功能
Feb 01 Javascript
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
详解es6超好用的语法糖Decorator
Aug 01 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
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
原生js实现无缝轮播图效果
2021/01/28 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
python3.5 tkinter实现页面跳转
2018/01/30 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
python机器学习之神经网络实现
2018/10/13 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
Python如何将字符串转换为日期
2020/07/31 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
绿色出行口号
2014/06/18 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
八年级英语教学计划
2015/01/23 职场文书
vue选项卡切换的实现案例
2022/04/11 Vue.js