matthi: der Link-URL Variablen anhängen

Hallo,

ich habe folgende Aufgabenstellung:
Ich möchte, sobald der User die Seite durch Link-Klick verlässt (onunload?!), der nächsten URL (also der Link-URL) Variablen anhängen.

Wie kann ich das lösen?
Habe absolut keine Vorstellung...kann immer nur auf die aktuelle URL zugreifen, aber nicht auf die, die im Link steht.
Ich will auf keinen Fall in jeden einzelnen Link irgendein JS bappen.

Vielen Dank,
matthi

  1. Ich möchte, sobald der User die Seite durch Link-Klick verlässt (onunload?!), der nächsten URL (also der Link-URL) Variablen anhängen.

    <a href="http://www.example.org/foo.bar?var1=42&var2=666">Klick!</a>

    Das, was nach dem Fragezeichen kommt, nennt man den Querystring. Hier besteht er aus Variablen nach dem Schema "Variablenname=Wert", er kann aber auch anders aussehen. Mehrere solche Paare werden durch ein & getrennt, welches man eigentlich mittels &amp; umschreiben muss. Ich hab's mal aus Gründen der Übersichtlichkeit weggelassen. Das Ganze entspricht dem, was man als GET-Methode bei Formularen kennt.

    Sollte das nicht sein, was Du suchst, beschreibe Dein Problem genauer.

    Siechfred

    --
    Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
    1. @@Siechfred:

      Mehrere solche Paare werden durch ein & getrennt,

      Nicht notwendigerweise. ';' bietet sich an und Vorteile.* [HTML401 §B.2.2]

      welches man eigentlich mittels &amp; umschreiben muss.

      Nicht _eigentlich_, sondern im HTML-Kontext _immer_. [ibid.]

      Ich hab's mal aus Gründen der Übersichtlichkeit weggelassen.

      Übersichtlichkeit schön und gut, aber ein Beispiel sollte schon auch richtig sein. Und unübersichtich ist

      <a href="http://www.example.org/foo.bar?var1=42&amp;var2=666">Klick!</a>

      nun auch nicht.

      Live long and prosper,
      Gunnar

      * Vorsicht: Zeugma!

      --
      „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
      1. Mehrere solche Paare werden durch ein & getrennt,
        Nicht notwendigerweise. ';' bietet sich an und Vorteile.* [HTML401 §B.2.2]

        Mag sein, aber ich sehe das wie Tim Tepaße.

        welches man eigentlich mittels &amp; umschreiben muss.
        Nicht _eigentlich_, sondern im HTML-Kontext _immer_. [ibid.]

        Schön, dass Du meine Aussage nochmal mit Deinen eigenen Worten wiederholst ;)

        Ich hab's mal aus Gründen der Übersichtlichkeit weggelassen.
        Übersichtlichkeit schön und gut, aber ein Beispiel sollte schon auch richtig sein. [...]

        Ich sehe das eher pragmatisch.

        * Vorsicht: Zeugma!

        Hach, mit die Fremdwörter bin ich nich so pervers, hab ja schließlich nur Ost-Appretur ;)

        Siechfred

        --
        Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
        1. Hi,

          * Vorsicht: Zeugma!

          Hach, mit die Fremdwörter bin ich nich so pervers

          Gut, bin ich also nicht der einzige, der darin auf's erste Lesen eine Fortpflanzungsaufforderung sah ...

          MfG ChrisB

  2. Mahlzeit,

    ich habe folgende Aufgabenstellung:
    Ich möchte, sobald der User die Seite durch Link-Klick verlässt (onunload?!), der nächsten URL (also der Link-URL) Variablen anhängen.

    Du kannst einer URL keine Variablen anhängen - allerhöchstens GET-Parameter ... und dies auch nur, solange sie noch nicht vom Browser angefordert wurde, d.h. also in der Regel VOR einem "onunload" (weil dieses Ereignis ja eintritt, SOBALD eine neue Ressource angefordert wurde), sondern eher beim "onclick".

    Habe absolut keine Vorstellung...kann immer nur auf die aktuelle URL zugreifen, aber nicht auf die, die im Link steht.

    Nicht? Was spricht gegen die Verwendung von http://de.selfhtml.org/javascript/objekte/links.htm@title=document.links (dies hat natürlich nur Sinn, wenn zum Zeitpunkt der Verwendung bereits bekannt ist, was Du an die einzelnen Links anhängen willst)?

    Ich will auf keinen Fall in jeden einzelnen Link irgendein JS bappen.

    In den Link kannst Du das eh nicht bappen. :-)

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Vielen Dank Euch beiden,
    also es ist genau einen Mischung aus Euren Antworten.

    Ich möchte so eine URL erzeugen wie Siechfred sie gezeigt hat, allerdings nicht fest in den Code schreiben, sondern:

    Die Seite wird geladen.
    Irgendwelche Scripts werden ausgeführt.
    Plötzlich tritt das Ereigniss XXX ein.
    Ab jetzt soll, sobald man einen Link anklickt - egal welchen Link -, an die Link-URL (z.B. ~~~~~/naechste-seite.html), das Ergebnis aus Ereignis XXX angefügt werden (z.B. ~~~/naechste-seite.html?XXX=isteingetreten)

    Hab mir schon gedacht, dass das nur über onclick geht, wollte aber vermeiden, dass ich in jeden Link reinschreiben muss onclick = mach mal die URL anders...

    Ich überleg mir nochmal was.

    Vielen Dank auf jeden Fall,
    vielleicht fällt EUch ja noch was ein...

    Lg, matthi

    1. Hallo,

      Hab mir schon gedacht, dass das nur über onclick geht, wollte aber vermeiden, dass ich in jeden Link reinschreiben muss onclick = mach mal die URL anders...

      In die Links reinschreiben ist ohnehin keine gute Idee. JavaScript sollte komplett vom HTML getrennt werden, genau wie CSS.

      vielleicht fällt EUch ja noch was ein...

      Klar. Du könntest z.B. ganz frech einen Eventhandler für das body-Element setzen, und wenn dann irgendwo geklickt wird, tritt der in Aktion und schaut erst mal kurz, ob es ein Link ist, der geklickt wurde. Wenn ja, dann Action:

        
      window.onload = function () {  
        
        document.body.onclick = function (e) {  
        
          e = e||event;  
          var was = (e.target||e.srcElement);  
        
          if ( was.href ) {  
        
            alert('Link angeklickt!');  
            was.href = was.href + '?XXX="eingetreten"';  
          }  
        };  
      };
      

      Das nur mal so als Anregung. Ist natürlich eine brutale Keule, aber funktioniert prinzipiell. Ich mache das so z.B. für anklickbare Tabellen, wo jede Zelle beim Draufklicken eine Aktion auslösen soll. Der Eventhandler wird einfach auf die ganze Tabelle gesetzt, und (e||event) ist dann automatisch die angeklickte Zelle, mit der man im Handler arbeiten kann.

      Gruß, Don P

      1. Muchos gracias,
        ich glaub, da fehlt mir noch so einiges an Wissen. Ok, damit muss ich mich mal näher beschäfftigen, aber es sieht verständlich aus und ich werde damit bestimmt was anfangen können. vielen dank!!!

        window.onload = function () {

        document.body.onclick = function (e) {

        e = e||event;
            var was = (e.target||e.srcElement);

        if ( was.href ) {

        alert('Link angeklickt!');
              was.href = was.href + '?XXX="eingetreten"';
            }
          };
        };

        
        > 
        
    2. Hab mir schon gedacht, dass das nur über onclick geht, wollte aber vermeiden, dass ich in jeden Link reinschreiben muss onclick = mach mal die URL anders...

      Ich überleg mir nochmal was.

      EKKI hat dir doch schon gezeigt wie das geht, du kannst doch jederzeit dynamisch den links einen onclick Handler spendieren, wo ist das Problem?

      Struppi.