Un blog que j'ai lu contient des commentaires gênants. Je pensais essayer ma main chez Greasemonkey pour les éteindre.Suppression d'éléments de liste avec Greasemonkey
La structure de base du HTML est simple - un commentaire ressemble à ceci:
<li>
<cite>user name ...</cite>
comment text
</li>
Donc, avec cela à l'esprit, je me suis cogné la tête contre le clavier pendant un certain temps jusqu'à ce abandonné:
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!')
(le window.alert
est juste pour savoir si le script est exécuté à la fin)
Ce la plupart du temps fonctionne. par exemple. sur une page de test, il a supprimé 13 des 16 messages de l'un des utilisateurs. J'ai essayé de remplacer la ligne de removeChild avec ceci:
comment.style.visibility = 'hidden';
Cela semble avoir tout, mais au détriment de laisser de grands espaces vides où les commentaires auraient été.
Je suis un débutant javascript complet, donc quelqu'un peut-il voir quelque chose d'évident que je fais mal?
Je me demandais si cela pouvait poser problème, alors j'ai essayé de créer un tableau de commentaires à supprimer, puis de le supprimer, mais en vain. Mais cela semble prometteur jusqu'à présent! Je vais tester un peu plus longtemps et ensuite revenir. –