Nick: Problem mit encodeURI - Brauche Hilfe

Hallo,

ich habe folgendes Problem:

Die nachfolgende Javascript-Anweisung funktioniert einwandfrei:
javascript:var url = 'http%3A%2F%2Fwww.google.de'; var neu = encodeURI(url);alert(neu);             ==> es wird http://www.google.de ausgegeben

Ich bin dabei, mir ein Skript zu schreiben, welches aus der noch zu ermittelnden Url diese Sonderzeichen herausfiltert:
.....
var extract = text.sclice(begin,end);      ==> in extrakt steht nun eine
                                               Url mit o.g. Sonderzeichen
var neu = encodeURI(extrakt);              ==> funktioniert nicht

Ich habe bereits etliche Versuche unternommen wie z. B. concat(''') - jedoch ohne Erfolg.

Weiß jemand eine Lösung ?

Danke

  1. Hi,

    ich habe folgendes Problem:

    Konkret im Moment vielleicht, ja.

    Aber was ist dein *eigentliches* Problem - die Aufgabe?
    Wenn du die mit beschreibst, dann lassen sich sinnvolle Lösungsansätze besser entwickeln, also wenn du nur ohne weitere Erklärung kurze Codeschnippsel hinwirfst und sagst "funktioniert nicht".

    Die nachfolgende Javascript-Anweisung funktioniert einwandfrei:
    javascript:var url = 'http%3A%2F%2Fwww.google.de'; var neu = encodeURI(url);alert(neu);             ==> es wird http://www.google.de ausgegeben

    Ich bin dabei, mir ein Skript zu schreiben, welches aus der noch zu ermittelnden Url diese Sonderzeichen herausfiltert:

    Welche Sonderzeichen, und in wie fern "herausfiltert"? Meinst du mit letzterem kontextgerechte Kodierung vornehmen?

    var extract = text.sclice(begin,end);      ==> in extrakt steht nun eine
                                                   Url mit o.g. Sonderzeichen
    var neu = encodeURI(extrakt);              ==> funktioniert nicht

    Was hat denn deine Kontrollausgabe der beiden Werte ergeben?

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hallo ChrisB,

      mein konkretes Anliegen ist folgendes:

      aus dem Quelltext einer Webseite eine Ziel-Url ermitteln (2 Fundstellen - begin und end, Ziel-Url ausschneiden) und diese Url
      dann mit window.location.href direkt aufrufen (leider hat diese Ziel-Url eben ein Format mit Sonderzeichen wie z. B. http%3A%2F%2Fwww.google.de statt http://www.google.de):

      var text = document.getElementsByTagName('body')[0].innerHTML;
      var begin = text.search(/var uiz.+/);
      var end = text.search(/&text.+/);
      var extract = text.slice(begin,end);     ==> Ergebnis: url mit
                                               Sonderzeichen wie z. B.
                                               http%3A%2F%2Fwww.google.de
                                               statt http://www.google.de
      window.location.href = extract;

      Es wurde vom Server der Webseite eine Fehlerseite ausgegeben, demzufolge die von mir aufgerufene Seite nicht angezeigt werden kann.
      Die Ziel-Url habe ich mir per alert ausgeben lassen: extract enthält ausschließlich die Ziel-Url beginnend mit http.

      Gruss Nick

      1. Hi,

        mein konkretes Anliegen ist folgendes:

        Na siehst du, schon kann man dir weiterhelfen.

        aus dem Quelltext einer Webseite eine Ziel-Url ermitteln (2 Fundstellen - begin und end, Ziel-Url ausschneiden) und diese Url
        dann mit window.location.href direkt aufrufen (leider hat diese Ziel-Url eben ein Format mit Sonderzeichen wie z. B. http%3A%2F%2Fwww.google.de statt http://www.google.de)

        Dann brauchst du doch einfach nur decodeURIComponent einmal darauf anwenden, und fertig.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
        1. Hallo ChrisB,

          hab's gerade in meinem Skript eingebaut. Funktioniert !!!

          Vielen Dank !!!

          Gruss Nick

      2. Nachtrag:

        Habe noch ein wichtiges Detail vergessen:

        ich hatte versucht, das Problem per Anweisung extract =
        encodeURI(extract) zu lösen, doch leider ohne Erfolg.
        Diese Anweisung hatte ich zwischen var extract = text.slice(begin,end);
        und window.location.href = extract; platziert.

        Ergebnis: Alert gibt mir immer noch eine Url mit Sonderzeichen aus (Beispiel: http%3A%2F%2Fwww.google.de) bzw. erhalte ich die genannte Fehlerseite.

        Danke.

        Gruss Nick