如果用户选择移出页面,如何在onbeforeunload()中调用外部函数?

时间:2018-08-25 00:08:25

标签: javascript onbeforeunload onunload

我看过很多示例,并在用户决定停留在页面中的地方尝试了调用指定函数的示例。 如果用户决定离开页面,则需要在页面卸载之前调用外部函数。

\0

我尝试使用“ onunload”,但在调用该函数之前需要提示用户。

谢谢!

2 个答案:

答案 0 :(得分:1)

您必须同时使用window.onbeforeunloadwindow.onunloadonbeforeunload返回一个字符串,这将导致浏览器在离开之前显示确认信息。如果用户确认离开,则会触发onunload,然后在页面卸载之前执行所需的操作。

window.onbeforeunload = function() {
    return "Are you sure you want to leave?";
};
window.onunload = function() {
    func1();
};

在这两个事件处理程序中都可以执行的操作受到限制,因为如果用户确实愿意,则不允许您阻止他们离开该页面。过去,恶意软件曾经使用这些事件来执行诸如重新打开页面之类的操作。

答案 1 :(得分:0)

您似乎正在尝试在用户离开页面之前运行一些自定义代码,如果beforeunload对您不起作用,因为在运行代码之前浏览器已经离开您,您可以添加{ mouseleave的{​​1}}事件监听器。如果用户的鼠标离开了文档,则很可能会离开您的页面(关闭页面,更改选项卡,使用计算机上的其他程序等)。

document

尝试运行上面的代码片段,然后将鼠标移入或移出结果框。