¿Cómo puedo desactivar las ventanas emergentes / alertas de JavaScript en Chrome?


20

Lo siento si se le ha preguntado. Ya he encontrado varias soluciones que no funcionan. No estoy seguro de lo que estoy haciendo mal.

No quiero desactivar todos los javascript, solo los cuadros de alerta de Javascript. Los que aparecen y te obligan a hacer clic en Aceptar o X para cerrarlos.

He encontrado scripts de usuario que dicen hacer esto (ejemplo: http://userscripts.org/scripts/show/58252 ). Puse Chrome en el canal de desarrollo, inicie Chrome con el interruptor --enable-user-scripts, el script aparece como instalado.

Pero todavía recibo los cuadros de alerta.

Un cuadro de alerta de ejemplo que no se deshabilita está en http://wordswithfriends.net/ - ponga cualquier palabra basura en el validador de palabras en la barra lateral derecha. Aparece una ventana emergente que le dice que no es una palabra.

Respuestas:


17

La única forma de deshabilitar los cuadros de alerta es instalar una extensión o un script de usuario. El script de usuario que vinculó es para Firefox Greasemonkey y no funcionará en Chrome.

Además, la página de mal comportamiento que cita es engañosa y ejecuta ese "validador de palabras" en un iframecódigo que alert()activa la recarga inmediata del iframe.

Pero aquí hay un script de usuario que lo derrota:

// ==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 realmente desea deshabilitar TODOS alerts()en TODAS las páginas (no recomendado), elimine la // @matchlínea.


77
Acepté esta respuesta tan fuerte que mi ratón explotó. Funciona de maravilla. Muchas gracias ^^
CreeDorofl

¡De nada! Encantado de ayudar.
Brock Adams

¿Por qué no se recomienda deshabilitar todas las alertas? Nunca encontré alertas útiles, excepto "¿realmente quieres salir de esta pestaña" en las páginas de progreso no guardadas.
Coretek

No funciona si la página muestra alertas durante la carga.
riv

@riv, abre una nueva pregunta si tienes un caso en el que no funciona. Asegúrese de proporcionar una receta completa para duplicar el problema.
Brock Adams

2

Hay al menos una extensión para eso en Chrome Web Store . Funciona para mí, aunque suena un poco sospechoso de que tiene un soporte opcional por modo de anuncios que puede deshabilitar en su página de configuración. (No encontré la configuración, pero pensé que no podría dañar el enrutamiento nulo api.s13.us).


0

Si está buscando una herramienta para esto y no quiere meterse con los scripts de usuario, hay una buena herramienta que puede manejar cualquier ventana emergente molesta en un sistema Windows: ClickOff . Puedes descargarlo desde aquí . Lo comprobé, funciona con la alerta "Los cambios que ha realizado no se pueden guardar" para los sitios de SharePoint.


Esto suena interesante, ya que las molestas ventanas emergentes de error serían agradables de eliminar en general. ¿Le permite especificar exactamente qué tipo de diálogos desea aceptar / cancelar automáticamente, o de alguna manera los elige por sí mismo?
CreeDorofl

Sí, puede especificar qué diálogos cerrar y el botón para hacer clic.
Serhiy
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.