Chrome不支持showModalDialog的解决方案
Chrome不支持showModalDialog的解决方案
昨天在使用showModalDialog的时候,遇到如下问题:
因为在chrome下,即使是用window.showmodalDialog()打开一个新窗口,那也还是和window.open()一样,我们可以在子窗口通过如下js脚本验证一下window.opener是否为空
<script type="text/javascript">alert(window.opener);
</script>
通过调试,可以发现,在chrome中,显示的是一个[object window]对象,而IE则是undefined。现在知道原来chrome将showModalDialog当作window.open来处理了。也就是说如果我们想在chrome下给父窗口返回值,不能直接用window.returnValue,而是应该用window.opener.returnValue。
var returnValue = window.showModalDialog("son.html ", window,"dialogWidth:400px;dialogHeight:400px");
//for chrome
if (!returnValue) {returnValue = window.returnValue;
}
if (window.opener) {//for chromewindow.opener.returnValue = "opener returnValue";
}
else {window.returnValue = "window returnValue";
}
window.close();//关闭子窗口
PS:以上的代码环境是IE 8.0.7601.17514和Chrome 22.0.1229.95 m,其他浏览器也没有仔细去测试过,有兴趣的人可以自己测试测试,总结总结,俺这种半吊子菜鸟就是个小混混。。。
//打开一个宽高均400px,无状态栏无帮助不能调节大小且居中屏幕的窗口
var sUrl = 'page0.aspx';
window.showModalDialog(sUrl, window, "dialogWidth:400px;dialogHeight:400px;status:0;help:0;resizable:0;center:1;");
var oParent = window.dialogArguments; //获取父窗口对象
oParent.location.reload(); //父窗口刷新,当然还可以做其他操作
<base target="_self"/>
再啰嗦两句啊,其实这个base标签的target属性很早以前就所有了解,也大致知道每个属性值的含义,可是遇到问题就不知道这里用上这么简单的一句就好了,果然光看书是没有用的哇,贵在实践,实践,实在是贱-_-|||
Chrome不支持showModalDialog的解决方案相关推荐
- chrome不支持embed标签解决方案
chrome不支持embed标签解决方案 参考文章: (1)chrome不支持embed标签解决方案 (2)https://www.cnblogs.com/thiaoqueen/p/8074530.h ...
- 关于chrome等浏览器不支持showModalDialog的解决方案
目前,新版本的chrome和opera.Firefox等浏览器已经不支持showModalDialog方法. 如果是没有接收返回值的,可以直接将window.showModalDialog改为wind ...
- Chrome中使用showModalDialog无法接收返回值,解决方案
原来在chrome下用showModalDialog打开的并不是模态窗口,而是和打开一个普通页面一样,父窗口还是可以获取焦点,执行相关操作.所以父窗口用var returnValue=window.s ...
- 移动端UC浏览器不支持Blob的解决方案
前言 uc浏览器不支持Blob的解决方案 参考文章:http://www.haomou.net/2016/01/14/2016_android_blob/ 如果你使用canvas导出图片,并将图片存储 ...
- 高版本Chrome兼容window.showModalDialog办法
高版本Chrome兼容window.showModalDialog办法 方式一:回调 兼容方式: 由于showmodaldialog 不属于W3C标准,在新版本浏览器中不再受支持,我们需要使用wind ...
- 谷歌将停止对32位Linux系统Chrome浏览器支持
谷歌将停止对32位Linux系统chrome浏览器支持 今天,谷歌宣布自2016年3月上旬开始将不再为部分GNU/Linux操作系统继续提供32位Chrome浏览器的DEB安装包.来自Chromium ...
- Chrome 53 支持 Shadow DOM 等规范
上周发布的 Chrome 53 带来了一系列实验性规范的支持,如Shadow DOM,它为复杂网页的开发提供便利.同时,针对移动平台,Chrome 53也提供了PaymentRequest接口.自定义 ...
- Chrome 53 支持Shadow DOM、PaymentRequest等规范
上周发布的 Chrome 53 带来了一系列实验性规范的支持,如Shadow DOM,它为复杂网页的开发提供便利.同时,针对移动平台,Chrome 53也提供了PaymentRequest接口.自定义 ...
- Lingoes对Chrome的支持
之前还曾经苦苦查找使 Lingoes对Chrome的支持的办法,一个偶然的机会发现本来Lingoes就对Chrome的支持,但是得启动Lingoes的划词翻译功能.太好了. 转载于:https://w ...
最新文章
- 8个好用到爆的Python实用技巧,至少不用吃亏半年
- python培训中心-深圳Python培训
- Tomcat7.0+的JNDI问题
- ssas表格模型 权限控制_Analysis Services(SSAS)表格模型中的时间智能
- android 图片存储读取数据库中,如何在android中存储(位图图像​​)并从sqlite数据库中检索图像?...
- python之OrderedDict
- VXLAN配置实例(三)——VXLAN集中式双活网关
- 【转载】Delphi下实现鼠标自动点击器
- TreeView 节点多选,对TreeView的遍历
- 2022年Java秋招面试必看的 | 微服务面试题
- kindle mobi词典格式分析及代码实现
- 1000瓶药水,一瓶有毒,用10只老鼠来判断到底是哪一瓶
- 一篇文章看懂Yandex SEO:俄罗斯外贸从这里开始
- 华为手机热点无法连接_华为P7手机WLAN热点连接失败解决方法介绍
- 数据库连接:Can`t connect to MySQL server on “localhost“(10038)
- 模仿百度“您要找的是不是:”提示功能
- Django的Q查询
- Sorry, this application cannot run under a Virtual Machine的解决
- 狂吃不胖11种食物化解油腻
- 计算机网络操作试题2级,计算机网络管理员操作模拟试题-二级.pdf