Marian: document.URL.replace funzt nicht ???

Beitrag lesen

Hallo Erikb,

Aus "%26" wird "&":
OpenURL( "mailto:?body=" + bookmarkURL.replace( '&', '%26' ) );

Willst du %26 durch & ersetzen (erste Zeile) oder & durch %26 (zweite Zeile)?
Falls ersteres: Lass es, auch in einem mailto-Link müssen diese Zeichen kodiert sein.
Übrigens arbeitet replace() mit regulären Ausdrücken.

Leider muss ich aber mehrere Dinge in der Url ändern. Wie macht man denn so etwas?

Es gibt doch extra eine Funktion, die genau das macht: decodeURIComponent() bzw. encodeURIComponent().

Zusätzlich soll in der URL das Symbol "§" in "DE" geändert werden. Folgender Ausdruck geht aber nicht:
OpenURL( "mailto:?body=" + bookmarkURL.replace( '&', '%26' and 'DE', '§' ) );

Nein, das geht nicht. and ist ein boolscher Operator (mal abgesehen davon, dass es bei JavaScript nur && gibt). Bei
( '&', '%26' && 'DE', '§' ) kommt dann ( '&', true, '§' ) raus.

Wenn du mehrmals ersetzen willst, musst du die replace()-Aufrufe hintereinander schreiben. Dann wird das Ergebnis der ersten Ersetzung der zweiten übergeben:

string = 'ich bin blöd';  
(string.replace('/ich/', 'du')).replace('/bin/', 'bist');

erst: 'ich bin blöd', dann: 'du bin blöd', dann 'du bist blöd'. Jetzt stimmt's ;-)

Viele Grüße aus Freiburg,
Marian

--
Microsoft broke Volkswagen's world record: Volkswagen made only 22 million bugs!
<!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->