2009-11-13 3 views
0

J'ai trouvé un script GreaseMonkey sur les scripts d'utilisateur qui corrige l'orthographe et de la grammaire que j'essaie d'améliorer pour Reddit, etc. J'ai reçu de l'aide à partir de là l'améliorer, et this est ma version actuelle qui fonctionne très bien.Remplacement du texte uniquement dans le nœud spécifié, et non dans les nœuds enfants

Il y a cependant un problème en ce qu'il met en italique les italiques, les gras et les liens. Je voudrais que le script ignore tous les nœuds enfants, ou au moins ceux qui sont em (italique), fort (gras) ou un (lien). J'ai essayé beaucoup de chercher et de lire, mais je n'ai pas encore trouvé un moyen de le faire. Il semble que pour d'autres raisons tout le monde veut que leur script fonctionne aussi sur les enfants. J'imagine qu'il y a différentes façons de le faire - peut-être de les empêcher de les inclure en premier lieu, de les désaligner tout de suite ou d'empêcher la boucle de remplacement de fonctionner si elles répondent à certains critères. Malheureusement, je ne suis pas très expérimenté en javascript, d'où la question que je pose ici.

Répondre

0

essayez de changer votre XPath de

//div[@class='md']//text() 

à

//div[@class='md']//*[not(self::em or self::strong or self::a)]/text() 

cela devrait empêcher tous em, strong et a nœuds d'être changé.

+0

Je viens de tester que sur: http://www.reddit.com/r/GreaseMonkey/comments/9yehr/im_trying_to_get_a_greasemonkey_script_that/c0f1kwh Malheureusement, il ne les exclut pas. J'ai aussi essayé quelques variantes sans succès. –

+0

Je viens de mettre à jour ma réponse avec un xpath qui fonctionne pour moi sur http://www.reddit.com/r/GreaseMonkey/comments/9yehr/im_trying_to_get_a_greasemonkey_script_that/c0f1kwh. –

+0

C'est génial! J'ai lu pendant des semaines en essayant de trouver une solution à cela, et vous l'avez résolu très rapidement. Je n'ai pas encore vu cette syntaxe, connaissez-vous un bon site qui l'explique? (Google supprime les deux-points lors de la recherche). –

Questions connexes