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第一课
Feb 27 Javascript
html数组字符串拼接的最快方法
Sep 16 Javascript
JavaScript 产生不重复的随机数三种实现思路
Dec 13 Javascript
js中判断对象是否为空的三种实现方法
Dec 23 Javascript
JS打开新窗口防止被浏览器阻止的方法
Jan 03 Javascript
js传值后台中文出现乱码的解决方法
Jun 30 Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 Javascript
基于vue-video-player自定义播放器的方法
Mar 21 Javascript
Vue程序调试的方法
Jun 17 Javascript
javascript开发实现贪吃蛇游戏
Jul 31 Javascript
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
JS 动态加载脚本的4种方法
2009/05/05 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
谈谈React中的Render Props模式
2018/12/06 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
2020/09/01 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
Python中functools模块函数解析
2017/03/12 Python
通过Pandas读取大文件的实例
2018/06/07 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
wxPython实现文本框基础组件
2019/11/18 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
自我鉴定模板
2013/10/29 职场文书
全国文明单位申报材料
2014/05/31 职场文书
相亲活动方案
2014/08/26 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
创业计划书之酒店
2019/08/30 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers