【问题标题】:Is there a way to make an exception for the beforeunload method?有没有办法让 beforeunload 方法例外?
【发布时间】:2013-09-06 18:27:40
【问题描述】:

我想为 javascript 中的 beforeunload 事件设置一个例外。我的意思是异常,因为我想从中排除 url 或表单按钮,而不是在错误处理异常的意义上。我现在将发布我的相关 javascript 代码。

if(loggedin == 1){
    $(window).bind('click', function(event) {
        if(event.target.href) $(window).unbind('beforeunload');
    });
    $(window).bind('beforeunload', function(event) {
        $('div.offerWindow').css("visibility", "visible");
        return 'Press "Stay on Page" and get a special offer!';
    });

    function Close(){
        $('div.offerWindow').css("visibility", "hidden");
    };
}

该网站位于http://www.redlakewalleye.com,位于此javascript 所在的购物车中。然后,当单击结帐按钮时,该站点将重定向到 https://redlakefisheries.worldsecuresystems.com/OrderRetrievev2.aspx...。我需要为这个 url 做一个例外,我不确定它是一个参数还是什么。任何帮助或替代解决方案都会很棒。

【问题讨论】:

  • onbeforeunload 是要处理的最糟糕的事件(onunload 除外!)。也就是说,我真的不明白你在做什么。什么是“结帐按钮”?您在“结帐”点击处理程序中发布的代码是什么?你真的应该考虑改进你的问题
  • 实际上有非常合法的场景,你唯一的机会就是使用这些事件......

标签: javascript jquery html https e-commerce


【解决方案1】:

如果我理解正确,那么:在该按钮的 onclick 中,只需取消绑定窗口的 onbeforeunload 事件即可。

编辑: 在您上面的代码中,您“绑定”(或设置)beforeunload 事件处理程序:

$(window).bind('beforeunload', function(event) {
    $('div.offerWindow').css("visibility", "visible");
    return 'Press "Stay on Page" and get a special offer!';
});

因此,在相关按钮的 onclick 事件处理程序中(您在某处有该代码)您“解除绑定”上述内容:

$(window).unbind('beforeunload');

我想就是这样。

【讨论】:

  • 你能给我举个例子吗?我不太了解绑定和取消绑定事件。谢谢。
猜你喜欢
  • 2019-09-13
  • 2019-09-12
  • 1970-01-01
  • 2017-01-16
  • 2020-04-27
  • 2013-06-24
  • 2011-08-11
  • 1970-01-01
  • 2017-03-26
相关资源
最近更新 更多