Ein Blog, den ich gelesen habe, hat einige nervige Kommentatoren. Ich dachte, ich würde meine Hand gegen Greasemonkey versuchen, sie auszuschalten.Listenelemente mit Greasemonkey entfernen
Die Grundstruktur des HTML ist einfach - ein Kommentar sieht ungefähr so aus:
<li>
<cite>user name ...</cite>
comment text
</li>
Also mit diesem Gedanken, ich meinen Kopf gegen die Tastatur für eine Weile heftig geschlagen, bis dieser herauszufilternde:
var killlist = /user1|user2/;
var comments = document.getElementsByTagName('li');
if (comments.length) {
for (var i = 0; i < comments.length; i ++) {
var comment = comments[i];
var cites = comment.getElementsByTagName('cite');
if (cites.length) {
var cite = cites[0];
var title = cite.textContent;
if (killlist.test(title)) {
comment.parentNode.removeChild(comment);
}
}
}
}
window.alert('Done!')
(die window.alert
ist nur so weiß ich, ob das Skript bis zur Fertigstellung läuft)
Diese meist funktioniert. z.B. Auf einer Testseite wurden 13 von 16 Posts von einem der Benutzer entfernt. Ich habe versucht, Ersatz der removeChild Linie mit diesem:
comment.style.visibility = 'hidden';
, dass alles zu bekommen scheint, aber auf Kosten große leere Räume zu verlassen, in dem die Kommentare gewesen wäre.
Ich bin ein komplettes Javascript-Neuling, kann also jemand etwas offensichtliches sehen, das ich falsch mache?
Ich fragte mich, ob das ein Problem sein könnte, also habe ich versucht, ein Array zu den zu löschenden Kommentaren zu machen und dann davor zu löschen, aber ohne Erfolg. Aber das sieht bisher vielversprechend aus! Ich werde etwas länger testen und dann zurückkommen. –