Freigeisterhaus Foren-Übersicht
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   NutzungsbedingungenNutzungsbedingungen   BenutzergruppenBenutzergruppen   LinksLinks   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Greasemonkey: Text ersetzen und Code entfernen

 
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Lectum
registrierter User



Anmeldungsdatum: 06.03.2005
Beiträge: 95
Wohnort: Allgäu

Beitrag(#355054) Verfasst am: 07.10.2005, 14:49    Titel: Greasemonkey: Text ersetzen und Code entfernen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
DemonDeLuxe
Frisch gestählt



Anmeldungsdatum: 17.08.2005
Beiträge: 672
Wohnort: Wiesbaden

Beitrag(#355273) Verfasst am: 07.10.2005, 23:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Lectum
registrierter User



Anmeldungsdatum: 06.03.2005
Beiträge: 95
Wohnort: Allgäu

Beitrag(#355692) Verfasst am: 08.10.2005, 20:35    Titel: Durch Greasemonkey Plenks entfernen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
DemonDeLuxe
Frisch gestählt



Anmeldungsdatum: 17.08.2005
Beiträge: 672
Wohnort: Wiesbaden

Beitrag(#356788) Verfasst am: 10.10.2005, 23:02    Titel: Re: Durch Greasemonkey Plenks entfernen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Lectum
registrierter User



Anmeldungsdatum: 06.03.2005
Beiträge: 95
Wohnort: Allgäu

Beitrag(#358096) Verfasst am: 13.10.2005, 15:28    Titel: Text ausgeben Antworten mit Zitat

Salvete!

Danke!
Den Text müsste man aber doch noch irgendwie ausgeben, oder?

_________________
Lectum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DemonDeLuxe
Frisch gestählt



Anmeldungsdatum: 17.08.2005
Beiträge: 672
Wohnort: Wiesbaden

Beitrag(#358235) Verfasst am: 13.10.2005, 20:33    Titel: Re: Text ausgeben Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Lectum
registrierter User



Anmeldungsdatum: 06.03.2005
Beiträge: 95
Wohnort: Allgäu

Beitrag(#358296) Verfasst am: 13.10.2005, 22:37    Titel: User Script läuft Antworten mit Zitat

Salvete!

Wow, danke, jetzt läuft's!

_________________
Lectum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lectum
registrierter User



Anmeldungsdatum: 06.03.2005
Beiträge: 95
Wohnort: Allgäu

Beitrag(#359487) Verfasst am: 16.10.2005, 00:50    Titel: JavaScripts durch JavaScript entfernen Antworten mit Zitat

Salvete!

Gibt es eigentlich auch irgendeine Möglichkeit mit JavaScript JavaScripts zu entfernen?

_________________
Lectum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DemonDeLuxe
Frisch gestählt



Anmeldungsdatum: 17.08.2005
Beiträge: 672
Wohnort: Wiesbaden

Beitrag(#361054) Verfasst am: 20.10.2005, 01:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen   Drucker freundliche Ansicht    Freigeisterhaus Foren-Übersicht -> DAU's Paradise Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Impressum & Datenschutz


Powered by phpBB © 2001, 2005 phpBB Group