Comment désactiver les popups / alertes javascript dans Chrome?

20

Désolé si cela a été demandé. J'ai déjà trouvé plusieurs solutions qui ne fonctionnent pas. Je ne sais pas ce que je fais mal.

Je ne veux pas désactiver tous les javascript, seulement les boîtes d'alerte Javascript. Ceux qui apparaissent et vous forcent à cliquer sur OK ou X pour les fermer.

J'ai trouvé des scripts utilisateur qui prétendent faire cela (exemple: http://userscripts.org/scripts/show/58252 ). J'ai mis Chrome sur le canal de développement, démarrez Chrome avec le commutateur --enable-user-scripts, le script s'affiche comme installé.

Mais je reçois toujours les boîtes d'alerte.

Un exemple de boîte d'alerte qui n'est pas désactivée se trouve sur http://wordswithfriends.net/ - mettez n'importe quel mot poubelle dans le mot validateur sur la barre latérale droite. Vous obtenez une fenêtre contextuelle vous indiquant que ce n'est pas un mot.

CreeDorofl
la source

Réponses:

17

La seule façon de désactiver les boîtes d'alerte consiste à installer une extension ou un script utilisateur. Le script utilisateur que vous avez lié est pour Firefox Greasemonkey et ne fonctionnera pas sur Chrome.

De plus, la page de mauvais comportement que vous citez est sournoise et exécute ce «validateur de mots» dans un iframecode avec qui déclenche alert()immédiatement le rechargement de l'iframe.

Mais voici un script utilisateur qui le défait:

// ==UserScript==
// @name        Wordswithfriends, Block javascript alerts
// @match       http://wordswithfriends.net/*
// @run-at      document-start
// ==/UserScript==

addJS_Node (null, null, overrideSelectNativeJS_Functions);

function overrideSelectNativeJS_Functions () {
    window.alert = function alert (message) {
        console.log (message);
    }
}

function addJS_Node (text, s_URL, funcToRun) {
    var D                                   = document;
    var scriptNode                          = D.createElement ('script');
    scriptNode.type                         = "text/javascript";
    if (text)       scriptNode.textContent  = text;
    if (s_URL)      scriptNode.src          = s_URL;
    if (funcToRun)  scriptNode.textContent  = '(' + funcToRun.toString() + ')()';

    var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
    targ.appendChild (scriptNode);
}

Si vous voulez vraiment désactiver TOUS alerts()sur TOUTES les pages (non recommandé), supprimez la // @matchligne.

Brock Adams
la source
7
J'ai accepté cette réponse si fort que ma souris a explosé. Fonctionne comme un charme. Merci beaucoup ^^
CreeDorofl
Vous êtes les bienvenus! Heureux de vous aider.
Brock Adams
Pourquoi n'est-il pas recommandé de désactiver toutes les alertes? Je n'ai jamais rencontré d'alertes utiles, sauf "voulez-vous vraiment quitter cet onglet" sur les pages de progression non enregistrées.
Coretek
Ne fonctionne pas si la page affiche des alertes pendant le chargement.
riv
@riv, ouvrez une nouvelle question si vous avez un cas où cela ne fonctionne pas. Assurez-vous de fournir une recette complète pour reproduire le problème.
Brock Adams
2

Il existe au moins une extension pour cela dans le Chrome Web Store . Fonctionne pour moi, même si cela semble un peu suspect qu'il dispose d'un support optionnel en mode annonces que vous pouvez désactiver dans sa page de paramètres. (Je n'ai pas trouvé le paramètre, mais j'ai pensé que cela ne pouvait pas nuire au routage nul api.s13.us.)

ecmanaut
la source
0

Si vous recherchez un outil pour cela et que vous ne voulez pas jouer avec les scripts utilisateur - il existe un bel outil qui peut gérer toute fenêtre contextuelle ennuyeuse sur un système Windows - ClickOff . Vous pouvez le télécharger ici . J'ai vérifié, cela fonctionne avec l'alerte "Les modifications que vous avez apportées peuvent ne pas être enregistrées" pour les sites SharePoint.

Serhiy
la source
cela semble intéressant, car les fenêtres contextuelles d'erreur gênantes seraient intéressantes à supprimer en général. Cela vous permet-il de spécifier exactement le type de dialogues que vous souhaitez automatiquement OK / annuler, ou les choisit-il en quelque sorte par lui-même?
CreeDorofl
Oui, vous pouvez spécifier les dialogues à fermer et le bouton à cliquer.
Serhiy