Frage

Vor Ort gibt es Code, wie die (seine Website auf LAN)

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

Ich versuche, dass die Benachrichtigung für GM zu deaktivieren. Ich habe versucht, dieses

zu tun
unsafeWindow.alert=function() {};

, aber ich sehe den Alarm und erhalten diesen Fehler

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]

Wie dieser Alarm deaktivieren?

P. S. dies ist NICHT ein Javascript Frage, sondern ein Grease Frage.

EDIT:

Die Unternehmens-Website, so dass ich nicht den echten Code einfügen

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

Es gibt auch einige Skripte und CSS-Deklarationen in Header.

War es hilfreich?

Lösung

Update: Für moderne Versionen von Tampermonkey, Violentmonkey, Greasemonkey (aber dringend empfohlen, GM zu vermeiden 4 +) :
Sie können mit alert() @run-at document-start in den meisten Fällen abfangen. Zum Beispiel dieses Skript laden und dann unter der Testseite :

// ==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);
};

Beachten Sie, dass, wenn Sie laufen Tampermonkey können Sie Block Warnungen effektiver durch die Umstellung auf Inject Mode: Instant :
Tampermonkey Einstellungen => Config-Modus: Advanced => Experimental => Inject-Modus:. Instant


Wenn Ihr Skript GM_ Funktionen erfordert , muss es @grant außer none gesetzt. In diesem Fall Gebrauch exportFunction() etwa so:

// ==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);


Alte Antwort, für Greasemonkey vor August 2011:

unsafeWindow.alert=function() {}; funktioniert gut in ausgewählten Situationen.

Aber, wenn das wirklich der Code auf der Seite ist, dann werden Sie nicht in der Lage sein, dieses Signal zu stoppen Greasemonkey verwenden.

Dies liegt daran, dass Alarm während der Seite zu laden und vor dem DOMContentLoaded Ereignisse ausgelöst wird -. Das ist, wenn Grease abgefeuert wird


Laden Sie diesen GM-Skript:

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

unsafeWindow.alert=function() {};


Dann besuchen. http://jsbin.com/ajeqe4/6

Überprüfen des Codes ( http://jsbin.com/ajeqe4/6/edit ), werden Sie 3 Warnungen sehen. Greasemonkey ist nur in der Lage die Warnungen, dass das Feuer auf load zu stoppen (in der Regel).

Andere Faktoren können GM Fähigkeit blockieren die Warnung ... Die Seite lädt zu schnell oder Schließungen zu stoppen, vielleicht.


Fügen Sie die Quelle dieser Seite, Unedited wenn überhaupt möglich, bei pastebin.com. Es kann etwas, was Sie tun können. blockiert das Skript über adblock vielleicht?

Ansonsten müssen Sie eine Erweiterung schreiben müssen / Add-on.

Andere Tipps

Wenn Sie Scriptish dann folgenden wird immer funktionieren:

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

unsafeWindow.alert=function() {};

Sie können get der Benutzer Skript hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top