博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
window.showModalDialog与window.open()使用
阅读量:6336 次
发布时间:2019-06-22

本文共 1658 字,大约阅读时间需要 5 分钟。

window.showModalDialog 有些浏览器不兼容,尝试用window.open() 封装替代,需要打开子窗口后向父窗口传递数据。
Test dialog  

子窗口返回数据:

window.returnvalue

window.open 代替showModalDialog

页面A.htm 用 window.open方式弹出页面 B.htm 。

在页面B.htm上选择一个值,确定关闭窗口后将选择的这个值返回到父窗口A.htm。
A.htm得到返回的值后,给本页面上的文本框赋值。

A.html

Test dialog

B.html

B    

另外一个封装方法

modal.js

var has_showModalDialog = !!window.showModalDialog;//定义一个全局变量判定是否有原生showModalDialog方法if(!has_showModalDialog &&!!(window.opener)){            window.onbeforeunload=function(){        window.opener.hasOpenWindow = false;        //弹窗关闭时告诉opener:它子窗口已经关闭    }}//定义window.showModalDialog如果它不存在if(window.showModalDialog == undefined){    window.showModalDialog = function(url,mixedVar,features){        if(window.hasOpenWindow){            alert("您已经打开了一个窗口!请先处理它");//避免多次点击会弹出多个窗口            window.myNewWindow.focus();        }        window.hasOpenWindow = true;        if(mixedVar) var mixedVar = mixedVar;        //因window.showmodaldialog 与 window.open 参数不一样,所以封装的时候用正则去格式化一下参数        if(features) var features = features.replace(/(dialog)|(px)/ig,"").replace(/;/g,',').replace(/\:/g,"=");        //window.open("Sample.htm",null,"height=200,width=400,status=yes,toolbar=no,menubar=no");        //window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");         var left = (window.screen.width - parseInt(features.match(/width[\s]*=[\s]*([\d]+)/i)[1]))/2;        var top = (window.screen.height - parseInt(features.match(/height[\s]*=[\s]*([\d]+)/i)[1]))/2;        window.myNewWindow = window.open(url,"_blank",features);    }}

A.html 父页面

    
Test dialog
内容哈哈哈

B.html页面:

    
B

相关文章:

转载地址:http://ooaoa.baihongyu.com/

你可能感兴趣的文章
第二十四章:页面导航(六)
查看>>
百度、长沙加码自动驾驶,湖南阿波罗智行科技公司成立 ...
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
阿里云容器Kubernetes监控(二) - 使用Grafana展现Pod监控数据
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
Java中取两位小数
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>
唯一聚集索引上的唯一和非唯一非聚集索引
查看>>
Spark新愿景:让深度学习变得更加易于使用——见https://github.com/yahoo/TensorFlowOnSpark...
查看>>
linux磁盘配额
查看>>
NFS文件共享服务器的搭建
查看>>