关闭后退按钮弹出
我想点击手机后退按钮关闭弹出窗口。 我使用onhashchange实现了这个:
window.onhashchange = function (event) { };
在这种情况下,如果弹出多次打开然后单击后退按钮,则会打开并关闭模式弹出窗口。 但是,我希望模式弹出窗口在第一个背面关闭并导航到下一个返回的prev页面。
我也尝试使用onbeforeunload,但它会显示另一个警告离开或停留在页面上。
$(window).bind('beforeunload', function(e) { return false; });
关闭后退按钮弹出窗口并在下一页上重定向到prev页面的最佳方法是什么?
当我测试我的答案时,bootply.com失败了。 请参阅下面代码底部的内联脚本和注释。 其余的只是Twitter Bootstrap样板,以便我可以在本地轻松测试它。
modal.html If you press the back button now, you should return to whatever page you were on before this page.
if (window.history && window.history.pushState) { $('#myModal').on('show.bs.modal', function (e) { window.history.pushState('forward', null, './#modal'); }); $(window).on('popstate', function () { $('#myModal').modal('hide'); }); }
根据http://www.mylearning.in/2015/06/close-modal-pop-up-on-back-button.html
$('#myModal').on('show.bs.modal', function(e) { window.location.hash = "modal"; }); $(window).on('hashchange', function (event) { if(window.location.hash != "#modal") { $('#myModal').modal('hide'); } });
这可以使用Apache Cordova轻松完成,但不确定您是否使用它在webview中显示您的页面。
function onBackKeyDown(e) { e.preventDefault(); } document.addEventListener("backbutton", onBackKeyDown, false);
http://cordova.apache.org/docs/en/2.4.0/cordova_events_events.md.html#backbutton
通过单击返回,自动$(’。modal’)。hide()函数被激活。 所以不需要隐藏模态。 我们可以在后退按钮后看到灰色阴影背景。您可以使用这些代码行中的任何一个来关闭模式弹出窗口。
- $(’。modal’)。modal(’hide’)。data(’bs.modal’,null); [关于bootstrap 3的工作]
要么
-
$( ‘主体’)removeClass( ‘模式开’)。
$(“模式,背景”)删除();
在模态处于活动状态时检查页面,您可以看到这些类。 如果这种方法错误或存在其他简单方法,请纠正我。
我会这样做的:
// 2.0 and above @Override public void onBackPressed(evt) { evt.preventDefault(); closeTab(); } // Before 2.0 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { evt.preventDefault(); closeTab(); return true; } return super.onKeyDown(keyCode, event); }
– >这些是btw的处理程序,需要addEventListener =)
我已经通过内存完成了它,我会在以后的’code mess’文件夹中找到它时检查它