Pregunta

En el lugar hay un código como que (su sitio en internet)

<script language="JavaScript" type="text/javascript">         
    alert("ble");
</script>

Trato de desactivar esa alerta utilizando GM. Yo estaba tratando de hacer esto

unsafeWindow.alert=function() {};

pero no veo la alerta y sale este error

Error: uncaught exception: [Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: file:///C:/Documents%20and%20Settings/arokitnicki/Dane%20aplikacji/Mozilla/Firefox/Profiles/sm4bsods.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js :: anonymous :: line 377"  data: no]

Cómo desactivar esa alerta?

P.S. esto es NO un javascript pregunta, sino una Greasemonkey pregunta.

EDIT:

Su sitio web de la empresa, así que no puedo pegar el código real

<head>
    <script>    
        dojo.require("dojo.back");
        dojo.back.init(); 
    </script>
</head>
<body onload="someMethod()">
    <iframe></iframe>
    <script>         
        alert("bla");
    </script>
</body>

También hay algunos scripts y declaraciones CSS en el encabezado.

¿Fue útil?

Solución

Actualización: Para las versiones modernas de Tampermonkey, Violentmonkey, Greasemonkey (pero muy recomendado para evitar GM 4 +) :
Puede interceptar alert() en la mayoría de los casos mediante el uso de @run-at document-start. Por ejemplo, la carga de este script y luego visitar la página de prueba :

// ==UserScript==
// @name    _Overwrite Alert
// @match   *://output.jsbin.com/*
// @grant   none
// @run-at  document-start
// ==/UserScript==

var alrtScope;
if (typeof unsafeWindow === "undefined") {
    alrtScope = window;
} else {
    alrtScope = unsafeWindow;
}

alrtScope.alert = function (str) {
    console.log ("Greasemonkey intercepted alert: ", str);
};

Tenga en cuenta que si usted es corriendo Tampermonkey , puede Alertas de bloque con mayor eficacia por el cambio a Inject Mode: Instant :
Tampermonkey Configuración => modo Config: Advanced => Experimental => Modo Inyectar:. Instant


Si su script requiere funciones GM_ , debe establecer @grant que no sea ninguno. En caso de que el uso exportFunction() este modo:

// ==UserScript==
// @name            _Overwrite Alert
// @match           *://output.jsbin.com/*
// @grant           GM_addStyle
// @run-at          document-start
// ==/UserScript==

function myAlert (str) {
    console.log ("Greasemonkey intercepted alert: ", str);
}
unsafeWindow.alert   = exportFunction (myAlert, unsafeWindow);


Respuesta Viejo, para Greasemonkey antes de agosto de 2011:

unsafeWindow.alert=function() {}; funciona bien en situaciones seleccionadas.

Sin embargo, si lo que realmente es el código de la página, entonces usted no será capaz de detener esa alerta utilizando Greasemonkey.

Esto se debe a que la alerta se disparará durante la carga de la página y antes del evento DOMContentLoaded -. Que es cuando se dispara Greasemonkey


Cargar este script GM:

// ==UserScript==
// @name            Overwrite Alert
// @description     Overwrites alert()
// @include         http://jsbin.com/*
// ==/UserScript==

unsafeWindow.alert=function() {};


A continuación, visita:. http://jsbin.com/ajeqe4/6

La inspección del código ( http://jsbin.com/ajeqe4/6/edit ), Usted verá 3 alertas. Greasemonkey sólo es capaz de detener las alertas que el fuego en load (por lo general).

Otros factores pueden bloquear la capacidad de GM para detener la alerta ... La página se carga demasiado rápido o cierres, tal vez.


Pegar la fuente de esa página, sin editar, si es posible, en pastebin.com. Puede haber algo más que puede hacer. Tal vez bloquear la secuencia de comandos a través de Adblock?

De lo contrario, tendrá que escribir una extensión / complemento.

Otros consejos

Si utiliza Scriptish entonces lo siguiente será siempre el trabajo:

// ==UserScript==
// @id              alert-killer-test@erikvold.com
// @name            Overwrite Alert
// @description     Overwrites alert()
// @include         *
// @run-at          document-start
// ==/UserScript==

unsafeWindow.alert=function() {};

Puede conseguir la escritura de usuario aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top