使用jquery在浏览器中禁用后退按钮?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jquery在浏览器中禁用后退按钮?相关的知识,希望对你有一定的参考价值。

我想在用户点击注销时禁用后退按钮我只删除该用户的cookie而不是我的应用程序中的会话。并且想要禁用“后退”按钮

if(getCookie('username') == ""){
   Disable back button;// we use "window.history.redirect" for javascript i look jquery for this

}

请帮我..

答案

你必须在pushState中推送你的url并清理浏览器历史记录:

试试这个 :

$(document).ready(function() {
        window.history.pushState(null, "", window.location.href);        
        window.onpopstate = function() {
            window.history.pushState(null, "", window.location.href);
        };
    });
另一答案
This is another technique to disable the back functionality in any webpage. We can disable the back navigation by adding following code in the webpage. Now the catch here is that you have to add this code in all the pages where you want to avoid user to get back from previous page. For example user follows the navigation page1 -> page2. And you want to stop user from page2 to go back to page1. In this case all following code in page1.

码:

<html>
    <HEAD>
        <SCRIPT type="text/javascript">    
             window.history.forward();
             function noBack() { 
                  window.history.forward(); 
             }
        </SCRIPT>
    </HEAD>
    <BODY onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
    </BODY>
</HTML>
另一答案
var path = 'Test.aspx'; //write here name of your page 
history.pushState(null, null, path + window.location.search);
window.addEventListener('popstate', function (event) {
    history.pushState(null, null, path + window.location.search);
});

这适用于所有浏览器(<IE 10除外),即使url附加了查询字符串。

为此你甚至不需要jquery。

看看here将其应用于您的页面。

另一答案

使用以下代码:

window.onload = function () {
    if (typeof history.pushState === "function") {
        history.pushState("jibberish", null, null);
        window.onpopstate = function () {
            history.pushState('newjibberish', null, null);           
        };
    }
    else {
        var ignoreHashChange = true;
        window.onhashchange = function () {
            if (!ignoreHashChange) {
                ignoreHashChange = true;
                window.location.hash = Math.random();                
            }
            else {
                ignoreHashChange = false;   
            }
        };
    }
};
另一答案

这不是您的方法,但您可以使用普通的javascript禁用任何窗口的导航面板。只需将window.menubarwindow.toolbar的可见性设置为false,如下所示,

window.menubar.visible = false ;
window.toolbar.visible = false ;

更新:

更改现有窗口的菜单栏和工具栏可见性似乎违反了安全协议。 (https://developer.mozilla.org/en/DOM/window.menubar

因此,唯一真正的方法是首先打开一个新的窗口,菜单栏和工具栏设置为“no”:

window.open(url,name,"menubar=no,toolbar=no[, additional options]",true) ;

如果将replace参数(最后一个参数)设置为true,则新窗口还应该继承打开它的窗口的历史记录。

检查https://developer.mozilla.org/en/DOM/window.openhttp://msdn.microsoft.com/en-us/library/ms536651(VS.85).aspx以供参考。

另一答案

简单逻辑:向前点击时向前移动


function preventBack() {
    window.history.forward();
}
 window.onunload = function() {
    null;
};
setTimeout("preventBack()", 0);

将此js代码保存在您的页面中。

另一答案

这将工作,它对我有用,因为我正在处理移动浏览器,androidios

window.history.forward();
window.onload = function()
{
  window.history.forward();
};

window.onunload = function() {
  null;
};
另一答案

Sunil是正确的,但是使用jQuery将下面的代码粘贴到您想要阻止回溯的任何页面中。我在IE 11,chrome和FF中进行了测试,效果很好。

$(document).ready(function () {
    function disableBack() {window.history.forward()}

    window.onload = disableBack();
    window.onpageshow = function (evt) {if (evt.persisted) disableBack()}
});

以上是关于使用jquery在浏览器中禁用后退按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用在android片段类中按下的后退按钮

Jquery 禁用浏览器的 后退和前进按钮

jquery mobile+html5 写的页面 如何禁用手机后退按钮。或者说如何禁用页面后退。

如何禁用浏览器后退按钮..? [复制]

如何在Angular 2中禁用浏览器后退按钮

如何使用 JavaScript 禁用浏览器中的后退按钮 [重复]