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

22

Existe-t-il un moyen de désactiver le Êtes-vous sûr de vouloir quitter cette page? message sur un site Web? J'utilise Chrome.


la source

Réponses:

8

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

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

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

Soyez prudent lors de l'installation des scripts utilisateur, ils sont capables de faire des choses que vous ne voudrez peut-être pas. Installez uniquement les scripts utilisateur provenant de sources fiables.

Vidar Ramdal
la source
ce n'est plus utile ..
pjpj
cette solution ne fonctionne pas
Argus
3
$(window).off('beforeunload.windowReload');

Cela fonctionne pour moi.

Ashwini KR
la source
4
Un peu plus de détails sur votre solution proposée aideraient
Dave M
1

Utilisation de jQuery

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

Depuis les documents 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 les é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 résumé, $(window)nous donne une référence à l'objet window qui est enveloppé dans un objet jQuery. Ce wrapper nous donne accès aux API jQuery qui sont disponibles sur l'objet (comme .off). L'appel .off()et la fourniture de la chaîne beforeunloadsupprimera tous les écouteurs d'événements qui écoutaient l' beforeunloadévénement auparavant .

Remarque: j'ai joué avec les approches JS vanille que j'ai trouvées après quelques recherches rapides sur Google. Cependant, je n'ai pas réussi à faire fonctionner ces approches dans le temps imparti pour résoudre ce problème. Si quelqu'un a une méthode non jQuery qui est toujours compatible avec plusieurs navigateurs, veuillez commenter ou poster une réponse supplémentaire. :)

wickdninja
la source
Je n'ai pas réussi à utiliser la réponse acceptée et jQuery était déjà disponible sur la page.
wickdninja
2
Ce serait une meilleure réponse si vous expliquiez comment l'utiliser et, idéalement, quelque chose sur son fonctionnement.
Scott
0

Pour que la commande de @wickdninja fonctionne, installez d'abord les outils de développement Chrome. Ensuite, vous pouvez ouvrir cela 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();

Tapez ensuite:

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

après cela, je peux ouvrir / fermer mon gmail sans obtenir le 'Quitter?' rapide. https://developers.google.com/web/tools/chrome-devtools/console/javascript

J'espère que cela t'aides.

Lee Hounshell
la source
-4

Vous pouvez désactiver Javascript site par site. Accédez à Paramètres -> Afficher les paramètres avancés -> Confidentialité -> Paramètres de contenu -> Javascript -> Gérer les exceptions.

Alexis Huxley
la source
4
Oui, mais cela désactivera plus que le simple message.
BenjiWiebe
Dans FIrefox au moins, interdire à Facebook d'exécuter javascript n'accomplit même pas ce que l'OP a l'intention car la page continue simplement à recharger le script sans l'exécuter.
brokkr