当用户导航离开时触发事件

我需要在PHP页面上调用JavaScript/jQuery函数,当用户关闭窗口/选项卡或通过单击链接导航离开时,该函数中有几行代码。我已经尝试了onbeforeuload函数,但是只有返回“blah blah blah;”部分执行,其他所有内容都被忽略。我还尝试了jQuery中的.unload方法,但由于某些原因,此代码无法运行

$(窗口)。卸载(函数(){
警报(“诸如此类”);
});

请提出替代方案。谢谢

下面是一个简单的工作示例。无论您从unload回调返回什么,都将在浏览器弹出确认窗口中显示

卸载前发送Ajax请求的工作示例
http://jsfiddle.net/alexflav23/hujQs/7/

最简单的方法是:

window.onbeforeunload=函数(事件){
//在这里做事
return“您有未保存的更改。确实要导航到别处吗?”;
};

在jQuery中:

$(窗口).on(“beforeunload”,函数(){
$.ajax(“someURL”{
async:false,
数据:“测试”,
成功:功能(事件){
log(“执行了Ajax请求”);
}
});
返回“这是一个jQuery版本”;
});

查看浏览器的“网络”选项卡。您将看到请求是如何按照您希望的方式发送的。只需发送适当的数据

请记住,所有触发的操作都必须是同步的,因此,例如,您只能进行同步ajax请求。然而,上述情况在任何方面都不完全可靠

选择定期将用户数据备份到localStorage,并自动与服务器同步。保持window.onbeforeuload只是作为额外的预防措施,而不是作为主要机制。众所周知,它会引起问题

发表评论