Javascript窗口.触发事件的Onbeforeunload捕获控件

Javascript Window.onbeforeunload trapping control that fired event

本文关键字:Onbeforeunload 控件 事件 窗口 Javascript      更新时间:2023-09-26

我有一个c#。. NET MVC3网络应用程序和我有一个问题有关附加的Stackoverflow问题。我正在使用窗户。beforeunload事件来查看是否对我的视图进行了更改。如果是,我会提醒用户他们有未保存的更改。但是,如果他们选择了创建(提交)按钮,仍然会弹出警告用户的对话框。我想不弹出对话框,如果创建按钮被选中。什么好主意吗?是否有一种方法可以查看单击了哪个控件?

我可以想到两个解决方案:

$('#submitBtn').click(function() {
    unbindOnBeforeUnload();
});
// OR
// maybe you have multiple cases where you don't want this triggered,
// so this will be better
var shouldTriggerOnBeforeUnload = true;
$('#submitBtn').click(function() {
    shouldTriggerOnBeforeUnload = false;
});
...
$(document).unload(function() {
    if (shouldTriggerOnBeforeUnload) {
        confirm();
    }
});

我用类似jquery的语法编写了它,但只是为了保持代码简洁,您可以将其调整为您想要的任何内容。