我要求客户调整系统中的一些旧功能。当前文件有href
链接,如下所示:
<a href="page_detail.cfm?id=#id#" target="_blank">#Name#</a>
如果您查看上面的代码,您会看到target="_blank"
页面将在新的浏览器窗口中打开。但是,用户希望能够关闭该窗口,如果他们点击OK/Cancel
中的page.detail.cfm
按钮。我尝试使用此代码关闭浏览器窗口:
var closeBtn = document.getElementById('btn_cancel');
closeBtn.addEventListener('click', cancel);
function cancel(){
window.close();
}
在我测试代码并在开发工具中单击Cancel
消息后,看起来像这样:
Scripts may not close windows that were not opened by script.
我想如果之前没有使用JavaScript打开过,则无法关闭该窗口。我不确定解决这个问题的最佳方法是什么?谢谢你的帮助。
从技术上讲,不允许脚本关闭用户已打开的页面,而不是脚本本身打开的页面。这是一个浏览器安全问题。我知道有一些黑客可以使用它,但是这样的事情可以从我能说的内容中快速修补。你可以在技术上用脚本打开窗口而不是某种点击事件等,但这又是一个解决方法。看看https://developer.mozilla.org/en-US/docs/Web/API/Window/close