使用window.showModalDialog打开新窗口在IE上不兼容的问题

本文介绍了解决IE8及以上版本浏览器在新窗口操作时出现重复打开新窗口问题的方法。通过在子窗口中加入<basetarget='_self'/>代码,可以确保所有操作都在当前窗口中完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RT,在IE8以上会出现在新窗口中操作(提交请求例如查询)时会重新打开一个新的窗口而不是在本省中加载页面。

在网上找了好久发现在子窗口中加入

<base target="_self"/>

后再进行操作就不会有问题

加入位置如下:

<head>
<%--兼容IE加入 <base target="_self"/>防止其在子窗口中操做又弹出新的窗口  MAYDAY 2013.12.12--%>
<%--可能会有未知的问题--%>
<base target="_self"/>
target="_self"就是在本身加载的意思。

在JavaScript中,`window.showModalDialog()` 是旧版IE浏览器中的一个API,用于显示模态对话框。然而,随着现代浏览器对HTML5的普及和支持,这个方法已经被弃用,推荐使用更现代、跨浏览器的方式来实现模态效果。 现代的做法通常使用以下技术: 1. **HTML5 Dialogs** (并非完全替代modal,但在支持的浏览器上可用):`window.showModalDialog` 的功能可以用 `<dialog>` 元素来模拟,比如: ```javascript let dialog = document.createElement('dialog'); dialog.innerHTML = '这是模态内容'; dialog.open(); ``` 记得在关闭时添加事件监听处理: ```javascript dialog.addEventListener('close', function (event) { event.preventDefault(); // 阻止默认关闭行为 dialog.remove(); // 删除元素以释放资源 }); ``` 2. **Bootstrap Modal** 或其他前端UI库:如Bootstrap提供了一个完整的模态组件,可以轻松创建响应式的模态窗口。例如: ```html <button type="button" data-toggle="modal" data-target="#myModal">打开模态</button> <div id="myModal" class="modal fade"> <!-- 内容 --> </div> ``` 然后在JS里初始化它: ```javascript var modal = $('#myModal').modal('show'); ``` 3. **自定义JavaScript库**:如果你需要更多的定制选项,也可以编写自己的简单弹窗函数,例如使用`CSS`隐藏和显示元素。 由于`window.showModalDialog` 已经过时,尽量避免在新项目中使用,而选择现代浏览器兼容的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值