onbeforeunload功能有严重的问题

时间:2014-11-04 07:59:14

标签: javascript jquery

我正在使用 native.history.js 在后退按钮中添加自定义网址。

脚本运行正常。现在问题是我想在点击刷新按钮时进行页面重定向;所以我修改了这样的脚本:

<script>
var back = 0;
$(window).bind('beforeunload', function () {
    if (confirm('Want to continue?')) {
        if (back == 1) {
            alert('back');
            //window.location.href = "<?=$$last_offer?>";
        } else {
            alert('refresh');
            //window.location.href = "<?=$actual_link;?>";
        }
    } else {
        // Do nothing!
    }
});

window.onpageshow = function (e) {
    if (e.persisted) {
        location.reload();
    }
};

window.onpopstate = function (event) {
    if (document.location.toString().indexOf("redir=1") > 0) {
        back = 1;
        window.location.href = "<?=$$last_offer?>";
    }
};
</script>

问题是,beforeunload函数似乎无效。 我无法解决的问题是什么? 如果我点击后退按钮,页面将进入所需页面,因此工作正常 我想要的只是,不知何故,页面刷新必须像我预期的那样工作。

1 个答案:

答案 0 :(得分:0)

尝试使用

$(window).on('beforeunload', function(){
  return 'Are you sure you want to leave?';
});

而不是绑定,使用on,我不知道你使用的jquery版本,但我会建议“on”。

在这里工作正常:

link

on jquery version 2.x(edge)