【问题标题】:How can I close a SimpleModal dialog when the user clicks the Back button?当用户单击后退按钮时,如何关闭 SimpleModal 对话框?
【发布时间】:2010-03-12 20:43:16
【问题描述】:

当用户单击按钮或链接时,我使用 SimpleModal jQuery 插件显示一个对话框以覆盖整个页面,防止用户在下一页加载之前的延迟期间单击另一个按钮或链接。 (我想避免这种情况,但这是另一天的问题。)

下一页显示后,如果用户点击返回按钮,上一页仍然显示 SimpleModal 覆盖,阻止他们使用该页面。这是个问题。

如何让 SimpleModal 对话框在离开页面或用户单击返回按钮返回页面时自动关闭?

我试过这个没有成功:

$("body").unload(function() {
    $.modal.close();
});

谢谢!
沃利

更新:这是似乎效果最好的解决方案:

$(window).bind("beforeunload", function() {
    $.modal.close();
});

【问题讨论】:

    标签: javascript jquery simplemodal


    【解决方案1】:

    尝试使用:

    $(window).unload(function() {
       $.modal.close();
    });
    

    【讨论】:

    • 行得通!谢谢!实际上,我找到了另一种效果更好的解决方案。出于某种原因,使用 $(window).unload() 会导致模式覆盖关闭时间与页面卸载和显示下一页的时间之间略有延迟。这只是几分之一秒,但有点烦人。改用 onbeforeunload 似乎可以消除这种延迟。这是代码: $(window).bind("beforeunload", function() { $.modal.close(); });显然 jQuery 没有 beforeunload 函数,所以你必须显式地将它绑定到窗口。
    【解决方案2】:

    为什么不直接

    $.modal.close();
    

    在你的 $(document).ready() 中?如果这是用户第一次访问该页面,它不应该已经打开,如果是,它将自动关闭。如果您在特定条件下希望在用户加载页面时打开模式,只需通过条件 if{} 检查进行设置。

    【讨论】:

    • 我试过了,但也没有用。据我所知,当用户单击“返回”按钮时,会显示上一页,但不会触发任何事件。
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2017-11-13
    • 2013-04-06
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多