Hi!
Wie kann ich in JavaScript meine zusammen gebauten URL-String URL-fähig machen?
Dazu gibt es die top level function (also nicht zu einem Objekt zugehoerig) escape(). (http://developer.netscape.com/docs/manuals/js/client/jsref/toplev.htm#1063743). Aber nicht den gesamten String escapen, sondern jeden Teilstring einzeln! Also:
var strURL = "index.htm?sek=c_seknav.htm$con=http://intra1.de/servlet/c1_abfrage?titel=" + escape(strTitel) + "&person=" + escape(strPerson) + "&abteilung=" + escape(strAbteilung);
Seltsamerweise codiert diese Funktion ein + nicht zu %2B, sondern laesst es, wie es ist. Von CGI-Scripts wird ein + aber im allgemeinen zu einem Leerzeichen decodiert. Falls Du mit so einer URL also so ein CGI-Script aufrufen willst, musst Du zusaetzlich *nach* dem escape() noch alle + durch %2B ersetzen. Sieht dann so aus:
var strURL = "index.htm?sek=c_seknav.htm$con=http://intra1.de/servlet/c1_abfrage?titel=" + escape(strTitel).replace(/+/g, "%2B") + "&person=" + escape(strPerson).replace(/+/g, "%2B") + "&abteilung=" + escape(strAbteilung).replace(/+/g, "%2B");
Da es String.replace() (http://developer.netscape.com/docs/manuals/js/client/jsref/string.htm#1194258) erst seit JavaScript1.2 gibt, musst Du stattdessen eine Funktion wie die von Antje verlinkte verwenden, wenn Dir die JS1.0-Kompatibilitaet wichtig ist.
Wenn Du aber scheinbar nur eine andere HTML-Seite aufrufst und dort mit JS den die URL weiterverarbeitest, kannst Du die Geschichte mit dem + vergessen. Dort verwendest Du naemlich einfach unescape(), welches ein + natuerlich *nicht* zum Leerzeichen decodiert.
HTH (hope that helps), und dass es nicht zuviel auf einmal war,
Calocybe