web-dev-qa-db-fra.com

Désactiver le bouton Précédent dans le navigateur à l'aide de jQuery?

Je voudrais désactiver le bouton Précédent lorsque l'utilisateur clique sur la fermeture de session pour supprimer uniquement les cookies de cet utilisateur qui ne se connecte pas à mon application. Et voulez désactiver le bouton Précédent

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

}

Aidez-moi, s'il vous plaît..

9
user380979

vous devez pousser votre url dans pushState et nettoyer l'historique du navigateur:

essaye ça :

$(document).ready(function() {
        window.history.pushState(null, "", window.location.href);        
        window.onpopstate = function() {
            window.history.pushState(null, "", window.location.href);
        };
    });
17
reza gholami

CODE:

<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>
4
Sunil Gupta
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);
});

Cela fonctionne sur tous les navigateurs (sauf <IE10) même si des chaînes de requête sont ajoutées aux URL.

Pour cela, vous n'avez même pas besoin de jQuery.

regardez ici à appliquer pour votre page.

4
Cheezy Code

Utilisez le code suivant tel quel :

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;   
            }
        };
    }
};

Ce n’est pas exactement votre approche, mais vous pouvez désactiver le panneau de navigation de n’importe quelle fenêtre à l’aide de javascript. Réglez simplement window.menubar et window.toolbar visibilité sur false comme suit,

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

Mise à jour:

La modification de la visibilité de la barre de menu et de la barre d’outils d’une fenêtre existante semble violer les protocoles de sécurité. ( https://developer.mozilla.org/en/DOM/window.menubar )

Par conséquent, le seul moyen réel consiste à ouvrir une nouvelle fenêtre avec la barre de menu et la barre d’outils définies sur "non":

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

Si vous définissez l'argument de remplacement (le dernier argument) sur true, la nouvelle fenêtre doit également hériter de l'historique de la fenêtre dans laquelle elle a été ouverte.

Vérifiez https://developer.mozilla.org/en/DOM/window.open et http://msdn.Microsoft.com/en-us/library/ms536651(VS.85).aspx pour référence.

1
FK82

Cela fonctionnera, cela a fonctionné pour moi car je traite avec des navigateurs mobiles, Android et iOS.

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

window.onunload = function() {
  null;
};
0
Ragu

Sunil avait raison, mais pour utiliser jQuery, collez le code ci-dessous dans toute page que vous souhaitez empêcher de revenir en arrière. J'ai testé cela dans IE 11, chrome et FF, ce qui a bien fonctionné.

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

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

Logique simple: avancer lorsque vous cliquez avant


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

Gardez ce code js dans votre page cela fonctionne.

0
saidesh kilaru