【问题标题】:Trigger event when user clicks the browsers back button当用户点击浏览器返回按钮时触发事件
【发布时间】:2016-07-06 12:19:46
【问题描述】:

当用户单击浏览器后退按钮时,jquery 是否可以触发函数。 我有一个灯箱/小部件,当它打开时会填充窗口。有一个关闭按钮等,但如果用户错误地点击后退按钮,这将是很好的。

到目前为止我有这个,但该功能似乎根本没有运行

$(window).on("navigate", function (event, data) {
            event.preventDefault();
            console.log('BACK PRESSED');
            var direction = data.state.direction;
            if (direction === 'back') {
                if(widgets.full_active){
                    $('.close', widgets.active_widget).click();
                    event.preventDefault();
                    console.log('CLOSE THIS');
                }
            }
            if (direction === 'forward') {
                // do something else
            }
        });

在函数的开头不运行这一行 event.preventDefault(); 应该意味着页面永远不会改变

【问题讨论】:

  • 改用 window.onbeforeunload 事件。
  • ^ but note that the event also fires when the tab/window is closed, or the user navigates to another site.没有办法知道单独单击后退按钮何时引发卸载事件

标签: javascript jquery browser navigation


【解决方案1】:

通常,我使用浏览器中的本机 JavaScript API 执行此操作,如下所述:Manipulating the Broser History

使用 jQuery,我看到人们通常使用这个插件:History.js,虽然我不知道它的状态。

您要查找的事件是onpopstate

每次活动时都会向窗口调度一个 popstate 事件 历史条目在相同的两个历史条目之间发生变化 文件。

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多