gpt4 book ai didi

javascript - 为什么 Microsoft Edge 中会出现关闭警告?

转载 作者:行者123 更新时间:2023-11-28 05:44:11 28 4
gpt4 key购买 nike

我正在开发一个基本的 oauth 身份验证原型(prototype),并且我有一个 HTML(称为 parent.html)打开一个子窗口来实现该目的。子窗口将被重定向到提供商网站,然后重定向到我的注册页面。我的注册页面将使用 javascript 调用 window.close(); 来关闭子窗口。

但是当我在 Microsoft Edge 中尝试我的原型(prototype)时,我注意到每次 javascript 尝试关闭子窗口时都会出现关闭警告。我测试了其他使用弹出窗口进行 oauth 身份验证的网站(例如 dropbox),当身份验证完成且子窗口即将关闭时,我没有看到相同的关闭警告。

有谁知道 Edge 为什么(以及在什么情况下)显示此警告对话框?任何信息都会有用且值得赞赏。谢谢。

Screenshot of the close warning

最佳答案

这是因为 MS Edge 中的弹出窗口阻止程序和自动脚本阻止程序功能。基本上,这两个功能将尝试阻止在页面加载期间无需用户操作而自动运行的任何脚本。

例如,这两个脚本将在 MS Edge 中被阻止(它们在 IE 中工作):

var w = window.open("page.htm"); //w will be null.

window.close(); //displays a warning.

例如,如果将它们放在函数中并从按钮的单击事件调用它们,则相同的两行代码将起作用。

<小时/>

解决方案:

在主窗口中创建一个函数来关闭弹出窗口,然后在弹出窗口中调用该函数并向其传递对弹出窗口的引用:

// in main window
function closePopup(w) {
w.close();
}

// in popup window
opener.closePopup(this);

关于javascript - 为什么 Microsoft Edge 中会出现关闭警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38680000/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com