gpt4 book ai didi

javascript - 使用javascript检测页面卸载

转载 作者:行者123 更新时间:2023-11-29 22:13:25 25 4
gpt4 key购买 nike

我有一个取消按钮,它执行一个 ajax,然后刷新页面内容,当导航离开时我想触发该按钮,但我不希望它刷新 UI 中的任何内容。

我想过使用一个全局变量,放在 window 对象中,但这看起来不太好:

$(".cancel").bind("click", function(e) {
e.preventDefault();
tellTheServerThatUserCanceled(); // ajax call
if (!isUnloading) refreshUI();
});

$(window).bind("unload", function(e) {
isUnloading = true; // this is disgusting, I don't want to do this
$(".cancel").trigger("click");
}

有没有官方的方法,或者其他更优雅的方法,或者我不应该担心使用全局变量?

编辑:unload 事件代码不知道它必须做什么,因为页面可以有多个编辑面板,有多个取消按钮。它只知道它必须触发每个面板的取消按钮。

最佳答案

我发现最好不要在 jQuery 的匿名函数中运行代码,而是让它们调用可共享的函数。像这样的东西说明了一般的想法:

function doCancel(e, isUnloading){
e.preventDefault();
tellTheServerThatUserCanceled(); // ajax call
if (!isUnloading) refreshUI();
}

$(".cancel").bind("click", function(e) {
doCancel(e, false);
});

$(window).bind("unload", function(e) {
doCancel(e, true);
}

关于javascript - 使用javascript检测页面卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798187/

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