Javascript JqueryMobile(SPA)是否禁用浏览器后退按钮并刷新?
您好,我正在为我的手机gap应用程序使用jqueryMobile SPA模板 对于web版本,我的要求是在单击浏览器后退按钮时禁用或向用户显示警告消息。我在谷歌上搜索了我的要求,但没有找到任何想要的解决方案。请指导我。谢谢。试试这个- 请参考以下链接 或者你可以使用Javascript JqueryMobile(SPA)是否禁用浏览器后退按钮并刷新?,javascript,jquery,jquery-mobile,cordova,Javascript,Jquery,Jquery Mobile,Cordova,您好,我正在为我的手机gap应用程序使用jqueryMobile SPA模板 对于web版本,我的要求是在单击浏览器后退按钮时禁用或向用户显示警告消息。我在谷歌上搜索了我的要求,但没有找到任何想要的解决方案。请指导我。谢谢。试试这个- 请参考以下链接 或者你可以使用 window.history.forward(1); 当按下后退按钮时。但它加载后重定向的方式不正确。要禁用我使用的浏览器的Backbutton $(window).on("navigate", function (even
window.history.forward(1);
当按下后退按钮时。但它加载后重定向的方式不正确。要禁用我使用的浏览器的Backbutton
$(window).on("navigate", function (event) {
event.preventDefault();
window.history.forward(1);
});
但按f5键时,会产生错误,并将我重定向到登录页面。因此,我禁用了f5,ctrl+R按钮
var ctrlKeyDown = false;
$(document).on("pagecreate", function (){
$(document).on("keydown", keydown);
$(document).on("keyup", keyup);
});
function keydown(e) {
if ((e.which || e.keyCode) == 116 || ((e.which || e.keyCode) == 82 && ctrlKeyDown))
{
// Pressing F5 or Ctrl+R
e.preventDefault();
} else if ((e.which || e.keyCode) == 17) {
// Pressing only Ctrl
ctrlKeyDown = true;
}
}
function keyup(e){
// Key up Ctrl
if ((e.which || e.keyCode) == 17)
ctrlKeyDown = false;
}
它完全满足了我的要求。多亏了Suhas:)。也许这篇文章有你可以使用的信息。不可能禁用它,事实上,你不应该禁用它。@Marvin@Omar谢谢……。谢谢。这工作正常,但是否可以禁用backbutton@varun您可以根据需要显示警告消息。这是可以的,但它不会停止页面导航。我想停止带有警告的导航message@varun我已经编辑了我的答案,请找到那个链接。谢谢Suhas,我使用您的代码来满足我的要求。我将发布我使用的代码。您可能需要推送初始状态以使此工作正常。。。类似这样的
window.onload=function(){if(window.history&&history.pushState){history.pushState(null,null,null);}代码>
var ctrlKeyDown = false;
$(document).on("pagecreate", function (){
$(document).on("keydown", keydown);
$(document).on("keyup", keyup);
});
function keydown(e) {
if ((e.which || e.keyCode) == 116 || ((e.which || e.keyCode) == 82 && ctrlKeyDown))
{
// Pressing F5 or Ctrl+R
e.preventDefault();
} else if ((e.which || e.keyCode) == 17) {
// Pressing only Ctrl
ctrlKeyDown = true;
}
}
function keyup(e){
// Key up Ctrl
if ((e.which || e.keyCode) == 17)
ctrlKeyDown = false;
}