在我的一个应用程序中,我通过JavaScript window.open() 打开弹出窗口,如果用户打开相同的链接;我想通过 window.close() 关闭之前打开的弹出窗口。
现在,对于下面提到的情况,IE无法关闭之前打开的弹出窗口并且它正在打开多个。
1)内部链接: 对于内部链接,这意味着在Popup中打开同一应用程序的不同页面,它适用于所有浏览器。
2)外部链接:如果我打开3 rd 方应用程序或任何其他外部网页(如Google.com等)的外部链接,此功能适用于所有其他浏览器,IE(内部资源管理器)除外。
有没有解决方法?....
任何可以帮助您跨浏览器平台实现相同功能的JavaScript代码?....
任何样品都会受到赞赏 先感谢您。
答案 0 :(得分:0)
您可以将窗口名称作为第二个参数传递给window.open()。如果具有该名称的窗口已打开,则将重复使用。
window.open(myUrl, 'myPopupWinodw');
如果您使用相同的窗口名称,则无需关闭上一个弹出窗口,因为该URL将在同一个弹出窗口中打开。
请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window/open
答案 1 :(得分:0)
希望此代码能为您提供帮助
function closeWindow() {
var Browser = navigator.appName;
var indexB = Browser.indexOf('Explorer');
if (indexB > 0) {
var indexV = navigator.userAgent.indexOf('MSIE') + 5;
var Version = navigator.userAgent.substring(indexV, indexV + 1);
if (Version >= 7) {
window.open('', '_self', '');
window.close();
}
else if (Version == 6) {
window.opener = null;
window.close();
}
else {
window.opener = '';
window.close();
}
}
else { window.close(); }
}