Comment utiliser greasemonkey pour supprimer le contenu d'un site web
Le contenu, je suis en train de modifier une série de <div>
entrées, et dans chacune de ces autres <div>
entrées. Il n'y a pas id
les balises d'aide ici. Ce que je veux le script à faire est de contrôler le contenu de chacun de ces <div>
entrées et de rechercher du texte. Il sera utilisé pour déterminer si l'ensemble de la " suppression de l'entrée/caché ou pas. Est-ce possible? Comment?
Ci-dessous est un exemple. Il y a plusieurs de ces éléments dans la page, et je veux supprimer/masquer le fait que le texte à l'intérieur de la <div class="foo bar">
balises de dire "Oui". Donc, dans cet exemple, toute cette chose était supprimé/caché.
<div class="entry">
<div class="fooPhoto"><a href="Addfoo.jsp?tid=954102"><img class="person" src="http://static.barfoo.com/images/site/icons/dude.png" border="0" width="24" height="24" onerror="this.src='images/site/icons/dude.png'" title="Photo Unavailable" alt="Photo Unavailable" ></a></div>
<div class="fooAvg">4.7</div>
<div class="foo bar">Yes</div>
<div class="fooShare">
<a class="shareEmail" href="referral.jsp?sid=882&tid=954102&pgid=3">Share using email</a>
</div>
</div><!-- closes entry -->
OriginalL'auteur node ninja | 2012-02-06
Vous devez vous connecter pour publier un commentaire.
Pour ce genre de questions, postez un lien vers la page cible. Ou, si c'est vraiment pas possible, enregistrez la page d' pastebin.com et le lier.
De toute façon, le général réponse à votre question n'est pas trop dur avec le jQuery contient() sélecteur. Quelque chose comme ceci:
Mise à jour pour la nouvelle précisé question/code:
Dans votre exemple, vous pouvez utiliser ceci:
Mise à jour pour le site précisé dans les commentaires:
Notez qu'il n'est pas nécessaire de rechercher du texte parce que le site idéalement donne la clé de la div de classe de
isHot
ounotHot
.Enfin, pour la dynamique (AJAX) pages,
utilisation
MutationObserver
ouwaitForKeyElements
. (WaitForKeyElements fonctionne aussi très bien sur des pages statiques.)Voici le script ci-dessus réécrit pour être AJAX conscient:
Même si elle n'en faire quelque chose, il ressemble à votre exemple ne fonctionne pas. Il ne suffit pas de supprimer la div qui contient le texte. La div que cette div réside dans doit également être supprimé.
Merci pour l'ajout de quelques détails à votre question. Consultez la mise à jour de réponse.
En fait il y a un espace dans foobar, de sorte que c'est "foo bar." Quel serait le code alors?
Une ligne de changement:
var badDivs = $("div.entry div.foo:contains('Yes')");
(sur une seule ligne)OriginalL'auteur Brock Adams