Problem mit encodeURI - Brauche Hilfe
Nick
- javascript
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
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 ausgegebenIch 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
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
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
Hallo ChrisB,
hab's gerade in meinem Skript eingebaut. Funktioniert !!!
Vielen Dank !!!
Gruss Nick
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