Jan Lauken: bei einem Text nach "?" den Text rausschneiden

hi@all,

erstmal volgendes vom Code:

var URL = location.href;
var gefunden = URL.indexOf("?");
var rest = "";

so ich möchte allso aus der URL der HTML datei befehle Werte entnehmen. Jetzt will ich erstmal das die Variable "rest" der ganze Text nach "?" ist...
z.b  www.xy.de/index.htm?mail=jan@lauken.de
also soll die Variable "rest" gleich "mail=jan@lauken.de"

Ich dachte mir so das er den Text von Zeile "URL-indexOf('?')" bis zur Zeile "URL.length" nimmt...   wie mach ich das?

  1. Hallo Jan,

    du schon wieder... :-)

    schau dich mal hier um:
    http://selfhtml.teamone.de/javascript/objekte/string.htm

    ich würd mal slice() oder split() probieren.

    Schöne Grüße aus Köln-Ehrenfeld,

    Elya

    --
    We are still confused, but on a higher level.
  2. hi@all,

    erstmal volgendes vom Code:

    var URL = location.href;
    var gefunden = URL.indexOf("?");
    var rest = "";

    so ich möchte allso aus der URL der HTML datei befehle Werte entnehmen. Jetzt will ich erstmal das die Variable "rest" der ganze Text nach "?" ist...
    z.b  www.xy.de/index.htm?mail=jan@lauken.de

    Du kennst selfhtml?

    Wenn nicht sei dir die Lektüre empfohlen.

    Da du sich mit JS beschäftigst insbesondere das hier:
     http://www.netzwelt.com/selfhtml/javascript/index.htm

    und dann möchtest du Details von window.location wissen, auch das steht in selfhtml http://www.netzwelt.com/selfhtml/javascript/objekte/location.htm

    hoffe das hilft.

    Struppi.

  3. Hallo Jan,

    URL als variable zu nutzen ist eine schlechte Idee! Davon abgesehen:

    var tmpQuery = document.location.search;
    if(tmpQuery.indexOf("?")==0) tmpQuery = tmpQuery.substring(1);
    rest = tmpQuery;

    ... Komplettlösung:

    function query2array(tmpQuery)
    {   var q2oObj, q2oArr, q2oArr_i, tmpRest="";
        q2oObj = new Array();
        q2oArr = new Array();
        q2oArr_i = new Array();
        if(tmpQuery.indexOf("?")==0) tmpQuery = tmpQuery.substring(1);
        if (tmpQuery.indexOf('&') >= 0) q2oArr = tmpQuery.split('&');
        else q2oArr[0] = tmpQuery;
        for (qqq=0; qqq<q2oArr.length; qqq++) {
         if (q2oArr[qqq].indexOf('=') > -1) {
            q2oArr_i = q2oArr[qqq].split('=');
            tmpRest = q2oArr_i.slice(1).join("=");
            q2oObj[q2oArr_i[0]] = unescape(tmpRest);
         } else {
            if(q2oArr[qqq]!="") q2oObj[q2oArr[qqq]] = true;
         }
        }
        return q2oObj;
    }

    var dingens = query2array(document.location.search);

    ... dann ist dingens['mail'] das, was Du eigentlich haben willst.

    Wahrscheinlich geht's auch einfacher, aber das hier tut's.

    Ansonsten stimme ich meinen Mitschreibern zu: RTFM!

    Grüße

    Gregor

    1. Hi,

      var tmpQuery = document.location.search;

      Aaaargh!
      Informiere Dich bitte darüber, wo das location-Objekt angesiedelt ist.
      Es ist nicht im Dokument-Objekt.

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Auch Hi,

        Hi,

        var tmpQuery = document.location.search;

        Aaaargh!
        Informiere Dich bitte darüber, wo das location-Objekt angesiedelt ist.
        Es ist nicht im Dokument-Objekt.

        cu,
        Andreas

        Gnade, Hochwürden! Jajaichweiß, das Location-Objekt ist ein
        direktes child von window, aber document.location geht auch.
        Ist veraltet und möglicherweise deprecated(?) aber funktio-
        niert prima und außerdem zeigt es immer die aktuelle
        Dokumentenadresse und nicht die angeforderte Adresse. Das mag
        auf den ersten Blick egal sein, spielt aber, wie ihro Gnaden
        gewisslich bekannt, eine Rolle bei Weiterleitung und so.

        ansonsten leiste ich Abbitte, es sollte heuer vielmehr heißen:

        var tmpQuery = location.search;
        if(tmpQuery.indexOf("?")==0) tmpQuery = tmpQuery.substring(1);
        rest = tmpQuery;

        Besser so?

        Grüße

        Gregor

        Ach ja - gibt's eigentlich eine Möglichkeit vor JS1.5 eine URL
        ohne Verrenkungen mit selbstgebastelten String-Funktionen zu
        parsen? - Wär mir fast mal 'nen eigenen Thread wert ...