2016-06-03 6 views
0

Ich muss die Warnmeldung durch meine Erweiterung deaktivieren. Die Alert-Funktion ist eine JavaScript-Funktion und ich überschreibe sie wie unten im Inhaltsskript, aber es funktioniert immer noch.Wie deaktiviere ich die Chrome Alert Notification?

Content-Skript:

window.alert = function(){} 

Es macht es nicht ausschalten. Das Problem ist wirklich einfach, aber es funktioniert nicht und ich werde verrückt :)

manifest.json:

"content_scripts": [ 
    { 
     "js": [ "assets/js/jquery-1.12.4.min.js", "assets/js/common.js", "assets/js/handlers.js" ], 
     "matches": [ "http://*/*", "https://*/*" ], 
     "run_at": "document_start" 
    } 
    ], 

handler.js:

window.alert = function (msg) { 
    debugger; 
    console.log(msg); 
} 
+0

Sie wahrscheinlich an der Quelle einer Erweiterung, die bereits tut dies, wie https://chrome.google.com/webstore/detail/alert-control/ofjjanaennfbgpccfpbghnmblpdblbef?hl=en – ceejayoz

+1

aussehen könnte Mögliches Duplikat von [Kann ich eine Warnung() mit einer Google Chrome-Erweiterung verhindern] (http://stackoverflow.com/questions/2963677/cani-i-prevent-an-alert-with-a-google-chrome-extension) (Beachten Sie die Top-Kommentar der angenommenen Antwort - es scheint, das kann nicht mehr getan werden) – ceejayoz

+0

Es funktioniert nicht für mich. Ich habe es schon ausprobiert. – RockOnGom

Antwort

3

Sie können keine Benachrichtigungen global in Chrome abschalten (zumindest nicht auf diese Weise).

von

window.alert = function(){} 

tun schalten Sie einfach die Benachrichtigungen für Ihre eigene Erweiterung (= Ihre eigene window Kontext) aus. Sie können dies aus Sicherheitsgründen nicht global durchführen (denken Sie daran, welche bösartige Erweiterung möglich wäre, wenn dies möglich wäre).

Edit: Sie tatsächlich can inject your code in die Inhaltsseiten; aber das ist immer noch keine "globale" Veränderung, die Sie suchen. Wenn Sie immer noch das wollen, dann:

manifest.js Ihre Erweiterung:

{ 
    "name": "MyExtension", 
    ... 
    "permissions": ["tabs", "http://*/*"], 
    "content_scripts" : [{ 
     "js" : ["script.js"] 
    }] 
} 

Und Ihre script.js:

window.alert = function(){} 
+0

danke Dmitry. Es muss auf Seite eingefügt werden. – RockOnGom

+0

@RockOnGom Ich habe meine Antwort angehängt. –

-2

Könnten Sie so etwas wie dies versuchen?

$(document).ready(function() { window.alert = function(){}; });

+0

http://meta.stackexchange.com/questions/45176/when-is-use-jquery-not-a -valid-answer-to-a-javascript-question – ceejayoz

+1

Bedeutung war nicht "jQuery verwenden". Bedeutung war "Versuch, Methode nach Lade-Seite zu versuchen". – FriendsKenny

+0

yeah, du versuchst weiter meinen Freund .. –

1

Als Dmitriy erwähnen muß es auf der Seite injiziert werden. Es funktioniert gut, bitte stimmen Sie für Dimitry ich habe nur die Antwort für die Freigabe meines Codes hinzugefügt. Skript kämpfen:

function override_alert() { 
     window.alert = function alert(msg) { 
      console.log('Hidden Alert ' + msg); 
     }; 
    } 
if (!document.xmlVersion) { 
     var script = document.createElement('script'); 
     script.appendChild(document.createTextNode('(' + override_alert + ')();')); 
     document.documentElement.appendChild(script); 
} 
Verwandte Themen