web-dev-qa-db-fra.com

Comment désactiver les fenêtres contextuelles "Êtes-vous sûr de vouloir quitter cette page" dans Chrome?

Existe-t-il un moyen de désactiver le message Voulez-vous vraiment laisser cette page? sur un site Web? J'utilise Chrome.

19
Rik

Ces messages sont mis en œuvre par les développeurs de sites Web en écoutant les événements onunload ou onbeforeunload.

Un script utilisateur disponible sur about.com bloque ces événements.

Pour installer ce script utilisateur (ou d'autres scripts utilisateur, vous devez d'abord installer une extension Chrome appelée TamperMonkey .

Soyez prudent lorsque vous installez des scripts utilisateur, ils sont capables de faire des choses que vous ne voudrez peut-être pas. Installez uniquement les scripts d'utilisateurs à partir de sources fiables.

8
Vidar Ramdal

$ (fenêtre) .off ('beforeunload.windowReload');

Ceci a fonctionné pour moi.

1
Ashwini K R

Utiliser jQuery

$(window).off('beforeunload'); // tested in IE 11 and Chrome 62

Depuis la documentation de jQuery

L'appel de .off () sans argument supprime tous les gestionnaires attachés aux éléments. Des gestionnaires d'événements spécifiques peuvent être supprimés sur des éléments en fournissant des combinaisons de noms d'événements, d'espaces de noms, de sélecteurs ou de noms de fonctions de gestionnaires.

Donc, en somme, $(window) nous donne une référence à l'objet window encapsulé dans un objet jQuery. Ce wrapper nous donne accès aux API jQuery disponibles sur l'objet (telles que .off). Le fait d'appeler .off() et de fournir la chaîne beforeunload supprimera tous les écouteurs d'événement qui écoutaient précédemment l'événement beforeunload.

Remarque: j'ai joué avec les approches Vanilla JS trouvées après quelques recherches rapides sur Google. Cependant, je n’ai pas pu faire fonctionner ces approches dans le temps imparti pour résoudre ce problème. Si quelqu'un a une méthode autre que jQuery compatible avec tous les navigateurs, veuillez commenter ou publier une réponse supplémentaire. :)

1
wickdninja

aussi, pour obtenir la commande de @wickdninja, installez d’abord les outils de développement Chrome. Ensuite, vous pouvez l'ouvrir et vous verrez un onglet pour "Console". Cliquez sur l'onglet Console. Ensuite, pour activer jQuery, tapez ces commandes:

var jqry = document.createElement('script');
jqry.src = "https://code.jquery.com/jquery-3.3.1.min.js";
document.getElementsByTagName('head')[0].appendChild(jqry);
jQuery.noConflict();

Puis tapez:

$(window).off('beforeunload');

après cela, je peux ouvrir/fermer mon compte Gmail sans obtenir le "congé? Rapide. https://developers.google.com/web/tools/chrome-devtools/console/javascript

j'espère que cela t'aides.

0
Lee Hounshell