web-dev-qa-db-fra.com

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

Désolé si cela a été demandé. J'ai déjà trouvé plusieurs solutions qui ne fonctionnent pas. Pas sûr de ce que je fais mal.

Je ne veux pas désactiver tous les scripts javascript, mais uniquement les alertes Javascript. Ceux qui apparaissent et vous obligent à cliquer sur OK ou X pour les fermer.

J'ai trouvé des scripts utilisateur qui prétendent le faire (exemple: http://userscripts.org/scripts/show/58252 ). J'ai mis chrome sur le canal dev, lancez chrome avec le commutateur --enable-user-scripts, le script apparaît comme étant 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 est à l’adresse http://wordswithfriends.net/ - placez le mot vides dans le validateur Word sur le Barre latérale droite. Vous obtenez une fenêtre contextuelle vous disant que ce n'est pas un mot.

20
CreeDorofl

Le seul moyen de désactiver les boîtes d’alerte est d’installer une extension ou un script d’utilisateur. Le script utilisateur que vous avez lié est destiné à Firefox Greasemonkey et ne fonctionnera pas sous Chrome.

De plus, la page de comportement incorrect que vous citez est sournoise et exécute ce "validateur Word" dans une variable iframe avec un code qui déclenche la alert() immédiatement lors du rechargement d'iframe.

Mais voici un script utilisateur qui le met en échec:

// ==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 ALL alerts() sur TOUTES les pages (non recommandé), supprimez la ligne // @match.

17
Brock Adams

Il existe au moins une extension dans le Chrome Web Store . Cela fonctionne pour moi, même si cela semble un peu suspect de prendre en charge le mode de prise en charge facultative de la publicité, que vous pouvez désactiver dans sa page de paramètres. (Je n'ai pas trouvé le paramètre, mais j'ai pensé qu'il ne pouvait pas nuire au routage null api.s13.us.)

2
ecmanaut

Si vous recherchez un outil pour cela et que vous ne voulez pas manipuler les scripts utilisateur, il existe un outil Nice capable de gérer les popups gênants sur un système Windows - ClickOff . Vous pouvez le télécharger à partir de ici . J'ai vérifié, cela fonctionne avec l'alerte "Les modifications que vous avez apportées ne peuvent pas être enregistrées" pour les sites SharePoint.

0
Serhiy