GreaseMonkey: Teile aus URL auslesen

  • GreaseMonkey: Teile aus URL auslesen

    Hallo,

    ich hoffe ihr könnt mir weiterhelfen.

    Ich möchte auf den Seiten von GMX (*http://gmx.net/de/cgi*) eine Box einblenden mit Links zu allen meinen Mailordnern:

    Code
    <div style="position:fixed; top:10px; right:10px; z-index:99; background:#E8EEF5; border:solid 2px #FF9600;font-size:10pt;">
    <h2 style="color:#FF5D00;">E-Mail Ordner</h2>
    <a href="http://www24.gmx.net/de/cgi/mailindex?CUSTOMERNO=3622503&t=de1002214237.1119893443.66c67ed6&FOLDER=inbox" >Posteingang</a><br>
    <a href="http://www24.gmx.net/de/cgi/mailindex?CUSTOMERNO=3622503&t=de1002214237.1119893443.66c67ed6&FOLDER=spam" >Spamverdacht</a><br>
    […]
    <a href="http://www24.gmx.net/de/cgi/mailindex?CUSTOMERNO=3622503&t=de1002214237.1119893443.66c67ed6&FOLDER=trash" >Gelöscht</a><br>
    </div>

    Da sich die URL bei jeder Sitzung aber verändert (Zahl nach „www“ und Zahlen nach „t=de“) muss man aus der aktuellen URL diese Parameter auslesen und über Variablen in die Links in der Box einfügen.
    Wie macht man das?

    Und wo (&wie) fügt man das ganze dann in die Seite ein?

    Vielen Dank für eure Mühe, J-K

  • den aktuellen Host bekommst du mit location.host (das ist dann www*.gmx.net)

    alles nach dem Fragezeichen erhälst du mit location.search, das musst du dannn halt mit substring und indexOf zurechtschneiden

    das HTML einfügen kannst du so (so ungefähr, ungetestet, das DIV ausenrum brauchst du nicht mit in die Variable HTML packen, da es ja schon per DOM erzeugt wird) einfügen

    Code
    // in der Konstante/Variable HTML ist der HTML-Code, der eingefügt werden soll
    var newElem = document.createElement("div"); // neues DIV-Tag erstellen
    newElem.setAttribute("style", "position:fixed; top:10px; right:10px; z-index:99; background:#E8EEF5; border:solid 2px #FF9600;font-size:10pt;"); // DIV stylen
    newElem.setAttribute("id", "meineEinzigartigeID"); // DIV eine ID geben, damit später noch darauf zugegriffen werden kann
    newElem.innerHTML = HTML; // HTML-Code in das DIV einfügen
    document.getElementsByTagName("body")[0].appendChild(newElem); // DIV-Tag in den Body einfügen
  • Danke für die Antwort.

    Kannst du dies bitte näher ausführen?

    Zitat von Dr. Evil

    den aktuellen Host bekommst du mit location.host (das ist dann www*.gmx.net)
    alles nach dem Fragezeichen erhälst du mit location.search, das musst du dannn halt mit substring und indexOf zurechtschneiden

    Kenne mich da nicht so aus! Danke.

    J-K

  • Danke für die Antwort.

    Kannst du dies bitte näher ausführen?

    Zitat von Dr. Evil

    den aktuellen Host bekommst du mit location.host (das ist dann www*.gmx.net)
    alles nach dem Fragezeichen erhälst du mit location.search, das musst du dannn halt mit substring und indexOf zurechtschneiden

    Kenne mich da nicht so aus! Danke.

    J-K

  • location.search gibt dir einen String, der beispielsweiße so aussieht:

    Code
    ?CUSTOMERNO=3622503&t=de1002214237.1119893443.66c67ed6&FOLDER=inbox


    und dann benutzt du beispielsweiße so was:

    Code
    var meineNeueVariableMitTDrinnen = location.search.substring(location.search.indexOf("&t=") + "&t=".length, location.search.length);
    meineNeueVariableMitTDrinnen = meineNeueVariableMitTDrinnen.substring(0, meineNeueVariableMitTDrinnen.indexOf("&"));
  • Habe noch ein Problem entdeckt:

    Wenn man z.B. eine Aktion (wie eMail verschieben) über die Auswahlliste von GMX getätigt hat, erscheint in der Adresszeile die URL ohne die Variablen.

    Wie kann ich erreichen, dass nur auf der ersten Seite meine Variablen belegt werden und nicht auf jeder neuen Seite?

    MFG, J-K

  • Zitat von J-K

    Wenn man z.B. eine Aktion (wie eMail verschieben) über die Auswahlliste von GMX getätigt hat, erscheint in der Adresszeile die URL ohne die Variablen.


    stimmt, da wird das Formular per POST statt per GET abgeschickt.

    Zitat

    Wie kann ich erreichen, dass nur auf der ersten Seite meine Variablen belegt werden und nicht auf jeder neuen Seite?


    Verstehe ich jetzt nicht so genau. Willst du dir "merken" was die Variablen für einen Wert haben?