ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

JavaScript - 关闭当前窗口 - Scripts may close only the windows that were opened by them.

2021-07-31 23:33:10  阅读:531  来源: 互联网

标签:them Target may JavaScript window html 关闭 close 页面


前言

有2个页面

[
"Source.html",
"Target.html",
]

其中,Target.html页面中还有几个iframe页面,

想实现的功能是,
1.点击Source.html中的一个a标签,跳转到Target.html页面,
2.在Target.html页面操作完成之后,
点击Target.html页面中的关闭按钮,关闭Target.html页面


问题出在了,
跳转到了Target.html页面之后,
不在Target.html页面的几个iframe之间切换的话,
是可以点击Target.html页面中的关闭按钮,关闭Target.html页面.

但是,如果在Target.html页面中切换几个iframe,
此时在点击Target.html页面的关闭按钮,是没有办法关闭Target.html页面的.

网络上标准答案

//第一种形式
window.opener = null;
window.open('', '_self', '');
window.close();


//第2种方式
var customWindow = window.open('', '_blank', '');
    customWindow.close();    


// 关闭页面
closeCurrentPage() {
	const ua = window.navigator.userAgent;
	if (ua.indexOf('MSIE') > 0) {
		if (ua.indexOf('MSIE 6.0') > 0) {
			window.opener = null;
			window.close();
		} else {
			window.open('', '_top');
			window.top.close();
		}
	} else {
		window.opener = null;
		window.open('', '_self', '');
		window.close();
	}
}

使用了标准答案之后,控制台出现提示语

Scripts may close only the windows that were opened by them.

解决方案

我原来的


<a href="/Test.html?id=1" target="_blank">跳转Target.html</a>

修改后的html


<a href="javascript:;" onclick="window.open('/Test.html?id=1', '_blank')"
跳转Target.html
</a>

主要就是将原来的直接跳转 href 修改为 window.open

摘抄文档

标签:them,Target,may,JavaScript,window,html,关闭,close,页面
来源: https://www.cnblogs.com/love-zf/p/15085642.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有