Im Chrome eine Seite VOR der Anzeige verändern?

voodoo44

Lieutenant
Registriert
Apr. 2006
Beiträge
824
Hallo User,

ich habe ein Problem. Ich möchte auf einer Webseite ein bestimmtes Javascript deaktivieren. Hierfür könnte man ja mit AdBlock Plus das Element einfach blockieren, sofern es in einer *.js-Datei liegt.

Mein Problem ist aber, dass der Javascriptcode, den ich blockieren möchte, direkt im HTML-Code der Webseite liegt.

Wie kann ich diesen Javascript-Code nun entfernen, bevor mir die Seite angezeigt wird? Gibt es da ein Chrome-Plugin dafür?

Ein einfaches "suchen-und-ersetzen" vor der Browserausgabe würde ja schon reichen ...
 
Hallo,

nein - habe ich noch nicht. Ich habe mir aber gerade ein wenig Kram zusammengetippt - aber so recht funktionieren will das nicht.

Vielleicht habt ihr ja eine kurze Hilfe für mich?

Aktuell sieht der Code so aus:
Code:
var bodyOld = document.getElementsByTagName('body');

for (var i = 0; i < bodyOld.length; i++) {
    bodyOld[i] = bodyOld[i].replace(/Visit/g, '***');
}

Ich will einfach nur das Wort "Visit" gegen drei Sterne austauschen ... später soll es dann noch ein anderer Suchstring sein - aber das dürfte ja keinen großen Unterschied dann machen.

Offensichtlich übernimmt mir das Greasemonkey-Script den neuen Inhalt nicht (ob er überhaupt das zu ersetzende findet?) - füge ich ein alert(i) ein, dann bekomme ich eine Ausgabe (0 - sollte logisch sein, gibt ja nur ein body-Element).

Tipps?
 
Du wendest replace() auf das DOM-Objekt an statt auf dessen Inhalt. Versuch's mal mit bodyOld.innerHTML.replace(...).
 
Code:
var bodyOld = document.getElementsByTagName('body');

for (var i = 0; i < bodyOld.length; i++) {
    bodyOld[i].innerHTML = bodyOld[i].innerHTML.replace("Visit", '***');
}

Funktioniert genauso wenig wie

Code:
var bodyOld = document.getElementsByTagName('body');

for (var i = 0; i < bodyOld.length; i++) {
    bodyOld[i] = bodyOld[i].innerHTML.replace("Visit", '***');
}

"Visit" mit /Visit/g ersetzt - ändert auch nichts ...
 
Die obere Variante - mit //g - funktioniert in meiner Firebug-Konsole ganz hervorragend.

Wird denn das Greasemonkey-Skript überhaupt ausgeführt?
 
Ja, wird es. Zu erkennen daran, dass die ALERT-Funktion auch im Browserfenster aufgerufen wird.

Im Firebug habe ich es auch ausprobiert, da funktioniert das problemlos. Deshalb wundert mich das gerade alles.
 
Zuletzt bearbeitet:
An welcher Position hast du diese Funktion denn? Muss nicht erst das Dokument geladen sein, damit JS anschließend alle Texte ersetzen kann?

Sprich: JS ganz unten im HTML-Code eingeben?
 
Kein HTML-Code, sondern Greasemonkey ....
Wäre es meine Seite, würde ich den JS-Code einfach so entfernen ...
 
Zurück
Oben