Karl: URL-Parameter in javascript verwenden

Hi,

auch wenn Ihr mich als absoluten Laien abstempelt ...

Wie kann ich Obiges erreichen, gefunden habe ich hier nur den unten dargestellten, etwas aufwändigen Weg. Get es nicht einfacher - durch direktes Auslesen der Parameter über irgendeine andere document/windows-Methode ?

Karl

<script language="JavaScript" TYPE="text/javascript">

function get_parameters() {
 // erzeugt für jeden in der url übergebenen parameter einen wert
 // bsp: x.htm?nachname=Munch&vorname=Alex&bildfile=wasserfall.jpg  erzeugt
 // variable nachname mit wert Munch  und
 // variable vorname mit wert Alex
 // variable bildfile mit wert wasserfall.jpg
 var hier = document.URL;
 var parameterzeile = hier.substr((hier.indexOf("?")+1))
 var trennpos
 var endpos
 var paramname
 var paramwert
 while (parameterzeile != "") {
  trennpos = parameterzeile.indexOf("=")
  endpos = parameterzeile.indexOf("&")
  if (endpos < 0) { endpos = 500000 }
  paramname = parameterzeile.substr(0,trennpos)
  paramwert = parameterzeile.substring(trennpos+1,endpos)
  eval (paramname + " = "" + paramwert + """)
  parameterzeile = parameterzeile.substr(endpos+1)
 }
}
</script>

    1. Danke für die Info .. Jürgen

      aber im Klartext heißt das doch, mit window.location.search krieg ich nur die ganze Zeichenkette und muss mir die irgendwie mit 'ner Stringverarbeitung auseinanderfummeln.

      Abgesehen davon, da die URL intern verwendet wird ist eine feste Positionierung der Parameter garantiert - quasi als Stellungsparameter.

      Gruß Karl

      1. Hallo Karl,

        mit http://de.selfhtml.org/javascript/objekte/string.htm#split kannst du Strings nach Trennzeichen zerlegen. Die Ergebnisse liegen dann als Array vor. Für dein Problem kannst du den Parameterstring erst nach dem Parametertrenner, üblicherweise ein "&", zerlegen, und die Teile dann nach dem "=".

        Gruß, Jürgen

  1. Hi there,

    function get_parameters()

    Diese Funktion "funktioniert" ohnehin nur bei Parametern, die Du vorher schon kennen mußt, da die sonst in dieser Funktion definierten Variablen dem Rest des Programms verborgen bleiben. Soll heissen, wenn Du nicht vorher zB eine Variable mit dem Namen "vorname" definierst, hast Du überhaupt nichts davon, daß in der Funktion eine gleichnamige erzeugt wird...

    1. Hallo,

      Diese Funktion "funktioniert" ohnehin nur bei Parametern, die Du vorher schon kennen mußt, da die sonst in dieser Funktion definierten Variablen dem Rest des Programms verborgen bleiben.

      Nö. Das ist m.W. nur so, wenn die Variablendefinition innerhalb der Funktion
      mit 'var' eingeleitet wird. Ansonsten sind innerhalb einer Funktion
      definierten Variablen global.

        
      function setter() {  
          x = 10;  
      }  
      setter();  
      alert(x);  
      
      

      Gruß, Jan

      1. Hi there,

        Nö. Das ist m.W. nur so, wenn die Variablendefinition innerhalb der Funktion
        mit 'var' eingeleitet wird. Ansonsten sind innerhalb einer Funktion
        definierten Variablen global.

        Wo Du recht hast, hast Du recht...

  2. Tag Karl.

    Wie kann ich Obiges erreichen, gefunden habe ich hier nur den unten dargestellten, etwas aufwändigen Weg. Get es nicht einfacher - durch direktes Auslesen der Parameter über irgendeine andere document/windows-Methode ?

    Ja, den kompletten Querystring liefert dir window.location.search. Ein Beispiel für das Zerlegen des Querystrings in Name/Werte-Paare findest du hier: http://sniplets.anaboe.net/javascript03.html.

    Siechfred

    1. Tach Siechfred

      habs mir mal reingezogen
      Is ja genial!

      Vielen Dank allen!

      Mit den Besten Grüßen

      KArl