相关疑难解决方法(0)

如何阻止页面在JS中卸载(导航)?

有谁知道如何阻止页面重新加载或导航?

jQuery(function($) {

    /* global on unload notification */
    warning = true;

    if(warning) {
        $(window).bind("unload", function() { 
            if (confirm("Do you want to leave this page") == true) {
                //they pressed OK
                alert('ok');
            } else {
                // they pressed Cancel
                alert('cancel');
                return false;
            }
        });
    }
});

我目前正在开发电子商务网站,显示您未来订单的页面可以使用+/-按钮更改订购商品的数量.以这种方式改变数量实际上不会改变订单本身,他们必须按下确认,因此提交一个积极的行动来改变订单.

但是,如果他们更改了数量并离开了页面,我想警告他们他们这样做是为了防止这是一次意外,因为如果他们离开或刷新页面,更改的数量将会丢失.

在上面的代码中,我使用的是一个全局变量,默认情况下为false(仅适用于测试),当数量更改时,我将更新此变量为true,当他们确认更改时,我将其设置为false .

如果警告为真并且页面已卸载,我会向他们提供一个确认框,如果他们拒绝他们想留在这个页面我需要阻止它卸载.return false不起作用,它仍然允许用户导航(警报仅用于调试)

有任何想法吗?

javascript jquery events

68
推荐指数
4
解决办法
9万
查看次数

阻止用户使用未保存的更改进行导航

我目前正在使用Backbone.Marionette来创建SPA,在其中一个视图中,用户可以使用未保存的更改进行导航.我可以控制其中一些事件,例如视图中的按钮和菜单选项,这会将用户带走,但是其他一些事件需要操作Backbone.Router或直接使用DOM事件.

我已经尝试过监听beforeunload(因为应用程序仍然加载hashchange不起作用)和(不起作用,因为你无法阻止浏览器导航).这些解决方案(1,2,3)不要在这种情况下工作时,JavaScript是永远不会卸载.

改变Backbone.Router似乎是最好的选择,但由于它是如何初始化的,我认为不可能引入这个功能,或者至少我找不到这样做的方法.例如,此解决方案不起作用,因为hashchange不可取消(您不能在其上调用stopPropagation),并且此其他解决方案不起作用,因为navigate未在Backbone.Router对象上定义.

有什么建议?

javascript jquery backbone.js

5
推荐指数
1
解决办法
973
查看次数

离开网页时提示用户输入未保存的更改

我有什么选项阻止用户关闭浏览器或导航到另一个站点?(当然我不能阻止他拔掉电脑上的插头等:我只是想给他一个警告)

javascript firefox

1
推荐指数
1
解决办法
2019
查看次数

标签 统计

javascript ×3

jquery ×2

backbone.js ×1

events ×1

firefox ×1