Chrome 更新后 JavaScript 无法正常工作

标签 javascript google-chrome onbeforeunload

我经常不小心关闭我的 Chrome 浏览器,不得不重新打开并重新加载我一直在使用的所有选项卡。由于 Chrome 没有内置关闭前确认机制,我写了一个简单的页面来要求关闭前确认。我在其他选项卡中将该页面保持打开状态。

<!DOCTYPE html>
<html>
    <body>
    <p>This page is to prevent accidental closing of Chrome.</p>
        <script language="JavaScript">

            window.onbeforeunload = function () {
                return "Are you sure?";
            };
        </script>
    </body>
</html>

最近我将我的 Chrome 浏览器从 56 版更新到 60 版。现在代码似乎不起作用,因为它在关闭前不再要求确认。我尝试了来自互联网的许多不同变体,但似乎都不起作用。

注意:我是网络开发的新手。

最佳答案

根据MDN docs :

To combat unwanted pop-ups, some browsers don't display prompts created in beforeunload event handlers unless the page has been interacted with; some don't display them at all.

所以,我认为你的函数不能保证运行,尤其是因为 Chrome 60 明确具有第一个行为。来自notes :

From Chrome 60 onward, the beforeunload dialog will only appear if the frame attempting to display it has received a user gesture or user interaction (or if any embedded frame has received such a gesture).

因此,如果您想继续使用这种方法,您可能需要在 session 的某个时刻与页面进行交互。

或者,要打开您在重新启动 Chrome 时打开的所有选项卡,请尝试按 Ctrl-Shift-T .

关于Chrome 更新后 JavaScript 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45671818/

相关文章:

javascript - onBeforeUnload 无法在 Chrome 上正常工作

php - Google Charts (Geochart) 在世界和欧洲之间切换区域

javascript - 从 NPAPI 插件调用 javascript 函数

google-chrome - Chrome 开发工具 - 元素面板 - 上下文菜单停止工作

javascript - window.onbeforeunload 不正确地允许导航

JavaScript window.onbeforeunload 不是每次都触发

javascript - 如何获取我的 nodemailer 电子邮件作为变量?

javascript - 最佳实践 - ASP.NET 合并所有 JavaScript 输出

javascript - HP Fortify 扫描问题 :Password Management: Password in HTML Form

javascript - XMLHttpRequest 在 Google Chrome Packaged Web App 中不起作用