繁体   English   中英

如何让浏览器返回按钮事件并防止出现默认行为

[英]How to get browser go back button event and prevented from default behavior

关于浏览器默认返回按钮的行为。 我的应用程序有一个特殊情况,例如在某些条件下忽略它。 我有模态如果模态打开而不是返回只是关闭模态。 我不知道是否可能有任何帮助

function keyEventClose(event){
        var status = $('#myModal').is(':visible');
        if(status){
        //prevent from going back just close the modal
        $('#myModal').modal('hide');
        }else{
        //go back as default 
          window.history.back();
        }
    }

找了一个小时后终于找到了解决这个问题的方法。 因为我在这里找不到当前的答案。 所以这个答案可能对某些人有帮助。

$('#openfeed').on('shown.bs.modal', function() {
    var stateObj = { foo: "modal-opened" };
    history.pushState(stateObj, "modal-opened", "modal-opened");
})

window.addEventListener('popstate', function(event) {
  $('#openfeed').modal('hide');
});

正如你所看到的那样,当我打开模态时,我们通过pushState()创建虚假的URL(浏览器不检查由此函数创建的URL,因此在页面上没有重新加载)当按下浏览器返回时, popstate`事件是附加此事件后生成文档解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM