Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Lectum registrierter User
Anmeldungsdatum: 06.03.2005 Beiträge: 95
Wohnort: Allgäu
|
(#355054) Verfasst am: 07.10.2005, 14:49 Titel: Greasemonkey: Text ersetzen und Code entfernen |
|
|
Salvete!
Weiß jemand von euch, wie man es bei einem Greasemonkey-User-Script hinbekommt, dass man einen bestimmten Text, beispielsweise ein A, durch einen anderen, beispielsweise B, ersetzen kann?
Ich würde mich über Hilfe freuen!
Edit:
Ich habe hier mal ein Beispiel dazu gefunden: http://diveintogreasemonkey.org/patterns/replace-element.html
Allerdings habe ich keine Ahnung, was ich machen müsste, wenn ich Text ersetzen sollte.
_________________ Lectum
Zuletzt bearbeitet von Lectum am 18.10.2005, 15:44, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
DemonDeLuxe Frisch gestählt
Anmeldungsdatum: 17.08.2005 Beiträge: 672
Wohnort: Wiesbaden
|
(#355273) Verfasst am: 07.10.2005, 23:18 Titel: |
|
|
Ich habe zwar nicht die entfernteste Ahnung, was "greasemonkey" sein soll, aber das Ersetzen geht etwa so:
Code: | altText = altText.replace(/ersetzmich/g,'durchdashier');
|
Das "g" nach dem zweiten "/" (ja, das ist richtig: hier stehen Slashes statt Anführungszeichen als Textbegrenzung) signalisiert, dass ALLE Vorkommnisse ersetzt werden anstatt nur das erste.
Das kann man beliebig komplex machen - diese sog. "regulären Ausdrücke" sind auch für ausgebuffte Codeknacker immer wieder ein Hauptspaß ;O)
_________________ HONI SOIT QUI MAL Y PENSE
|
|
Nach oben |
|
 |
Lectum registrierter User
Anmeldungsdatum: 06.03.2005 Beiträge: 95
Wohnort: Allgäu
|
(#355692) Verfasst am: 08.10.2005, 20:35 Titel: Durch Greasemonkey Plenks entfernen |
|
|
Salvete!
Greasemonkey ist eine Firefox-Erweiterung zur Manipulation von Websites. Ich habe da zum Spaß ein bisschen mit herumhantiert. Zum Beispiel könnte man einen Text durch einen anderen ersetze: Man will beispielsweise alle Plenks, also überflüssige Leerzeichen vor Satzzeichen, im Forum hier entfernen. Das ist zwar eine reichlich bescheuerte Aktion, aber ich beschäftige mich dadurch auch ein bisschen mit JavaScript, welches ich noch kaum beherrsche. Das wiederum führt dann zu ein paar Schweirigkeiten:
Durch getText() kann man den Text ja in eine Variable stecken. Allerdings habe ich keine Ahnung, was ich vor den Punkt schreiben muss.
Durch deinen hilfreichen Code kann man dann ja diesen String wohl leicht bearbeiten.
Danach muss man den alten Text noch irgendwie durch den neuen ersetzen. In einer Variable bringt der ja nicht viel. Kann man das durch setText() machen?
_________________ Lectum
|
|
Nach oben |
|
 |
DemonDeLuxe Frisch gestählt
Anmeldungsdatum: 17.08.2005 Beiträge: 672
Wohnort: Wiesbaden
|
(#356788) Verfasst am: 10.10.2005, 23:02 Titel: Re: Durch Greasemonkey Plenks entfernen |
|
|
Ah, ok, jetzt hab' ich mich eben auch 'mal schlau gemacht... oder weiß doch jetzt wenigstens, worum es geht, im Wesentlichen also JavaScript.
Was sich mir derzeit noch nicht ganz erschließt, ist dieses "getText()" - ist das eine greasemonkey-Funktion? JS-Standard ist es jedenfalls nicht.
Was Du da willst, ist gleichzeitig leichter als auch schwerer, als Du denkst.
Leichter, weil Du an sich lediglich das Element ansprechen musst (z.B. mit getElementById('tralala') oder mit getElementsByTagName('a') ), also z.B. so:
Code: | allLinks = getElementsByTagName('a')
for (i=0; i< allLinks.length; i++) {
theHTML = allLinks[i].innerHTML
theHTML += 'xxx'
allLinks[i].innerHTML = theHTML
} |
Damit hättest Du dann an alle Links ein "xxx" angehängt (habe ich jetzt 'mal so aus der la main geschrieben, also ungetestet!).
Einfach, oder?
Jetzt das Schwierige: An sich sollte man mit dem DOM (Document Object Model) arbeiten. Die Eigenschaft "innerHTML" erscheint zwar praktisch, ist aber eigentlich schon "cheesy". Streng genommen, ist es nämlich komplizierter... nehmen wir einmal folgende, simple Zeile:
Code: | <span id="bsp">Ein <b>Mops</b> kam in die Küche</span> |
Dann hättest Du mit
Code: | tmp = document.getElementById('bsp').innerHTML |
der Variable tmp den gesamten HTML-Code innerhalb des span-Tags zugeordnet. Im DOM aber sieht das anders aus, denn da zerfällt dieser simple Satz in 3 Textnodes, nämlich
- "Ein "
- "Mops"
- " kam in die Küche"
Erst auf dieser Ebene dann hast Du es mit reinem, HTML-freiem Text zu tun, der leicht weiterzuverarbeiten ist.
Ich nehme allerdings an, dass Du für Deine Zwecke mit der "Pfuschvariante" .innerHTML hinkommen dürftest (ich benutze die auch für kleine Routinen).
_________________ HONI SOIT QUI MAL Y PENSE
|
|
Nach oben |
|
 |
Lectum registrierter User
Anmeldungsdatum: 06.03.2005 Beiträge: 95
Wohnort: Allgäu
|
(#358096) Verfasst am: 13.10.2005, 15:28 Titel: Text ausgeben |
|
|
Salvete!
Danke!
Den Text müsste man aber doch noch irgendwie ausgeben, oder?
_________________ Lectum
|
|
Nach oben |
|
 |
DemonDeLuxe Frisch gestählt
Anmeldungsdatum: 17.08.2005 Beiträge: 672
Wohnort: Wiesbaden
|
(#358235) Verfasst am: 13.10.2005, 20:33 Titel: Re: Text ausgeben |
|
|
Lectum hat folgendes geschrieben: | Den Text müsste man aber doch noch irgendwie ausgeben, oder? |
Die Ausgabe ist eine simple Umkehrung der Variablenzuweisung
Code: | myHTML = document.getElementById('bsp').innerHTML |
Dann irgendwas mit "myHTML" anstellen und nachher:
Code: | document.getElementById('bsp').innerHTML = myHTML |
Lässt sich natürlich bequemer in Form einer Funktion machen - sagen wir 'mal, wir wollen allen Links ein "Link: " voranstellen:
Code: | showLinks()
function showLinks() {
var d = document
arLinks = d.getElementsByTagName('a')
for (i=0; i<arLinks.length; i++) {
arLinks[i].innerHTML = 'Link: ' + arLinks[i].innerHTML
}
}
|
_________________ HONI SOIT QUI MAL Y PENSE
|
|
Nach oben |
|
 |
Lectum registrierter User
Anmeldungsdatum: 06.03.2005 Beiträge: 95
Wohnort: Allgäu
|
(#358296) Verfasst am: 13.10.2005, 22:37 Titel: User Script läuft |
|
|
Salvete!
Wow, danke, jetzt läuft's!
_________________ Lectum
|
|
Nach oben |
|
 |
Lectum registrierter User
Anmeldungsdatum: 06.03.2005 Beiträge: 95
Wohnort: Allgäu
|
(#359487) Verfasst am: 16.10.2005, 00:50 Titel: JavaScripts durch JavaScript entfernen |
|
|
Salvete!
Gibt es eigentlich auch irgendeine Möglichkeit mit JavaScript JavaScripts zu entfernen?
_________________ Lectum
|
|
Nach oben |
|
 |
DemonDeLuxe Frisch gestählt
Anmeldungsdatum: 17.08.2005 Beiträge: 672
Wohnort: Wiesbaden
|
(#361054) Verfasst am: 20.10.2005, 01:03 Titel: |
|
|
Klar. Die Scripts sind auch nur HTML-Code, also teste 'mal das hier aus, das gibt Dir den Hinweis:
Code: | <script>
xxx=1
</script>
<script>
ar = document.getElementsByTagName('script')
alert(ar[0].innerHTML)
</script> |
_________________ HONI SOIT QUI MAL Y PENSE
|
|
Nach oben |
|
 |
|