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

use*_*979 11 jquery button

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

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

}
Run Code Online (Sandbox Code Playgroud)

请帮我..

rez*_*ami 24

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

试试这个 :

$(document).ready(function() {
        window.history.pushState(null, "", window.location.href);        
        window.onpopstate = function() {
            window.history.pushState(null, "", window.location.href);
        };
    });
Run Code Online (Sandbox Code Playgroud)

  • 它在最近升级的 Chrome 76 中停止工作。试图找到另一种方法,但还没有成功。 (2认同)

小智 6

使用以下代码

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;   
            }
        };
    }
};
Run Code Online (Sandbox Code Playgroud)


小智 5

这是在任何网页中禁用后台功能的另一种技术。我们可以通过在网页中添加以下代码来禁用后退导航。现在这里的问题是您必须在所有页面中添加此代码,以避免用户从上一页返回。例如用户跟随导航页面1 -> 页面2。并且您想阻止用户从 page2 返回到 page1。在这种情况下,第 1 页中的所有以下代码。

代码:

<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>
Run Code Online (Sandbox Code Playgroud)


FK8*_*K82 1

这不完全是您的方法,但您可以使用纯 JavaScript 禁用任何窗口的导航面板。只需将可见性window.menubar设置如下,window.toolbarfalse

window.menubar.visible = false ;
window.toolbar.visible = false ;
Run Code Online (Sandbox Code Playgroud)

更新:

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

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

window.open(url,name,"menubar=no,toolbar=no[, additional options]",true) ;
Run Code Online (Sandbox Code Playgroud)

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

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

  • -:不工作,例如。ff。+:好主意,但禁用菜单最安全的方法是打开一个新窗口并设置正确的选项! (2认同)