Netscape: Url mit Sonderzeichen

Dieses Thema im Forum "Web-Know-how für die Homepage" wurde erstellt von Pedant, 1. Juni 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Pedant

    Pedant Byte

    Registriert seit:
    28. September 2002
    Beiträge:
    106
    http://www.äöü.de\';alert(fred);location.href=fred;}">
    Testlink
    </a>
    </body>
    </html>

    (Ich weiß, dass es die Seite "http://www.äöü.de" nicht geben kann)

    Die Wert der Variablen "fred" wird mir bei dieser Testdatei an vier Stellen angezeigt.
    1. Im Quelltext
    2. Beim MouseOver in der Statuszeile des Browsers
    3. Nach dem Klick als alert()
    4. Bei der Fehlermeldung, dass die Seite nicht gefunden wird

    Der Internet Explorer zeigt den Wert der Variablen immer als "http://www.äöü.de" an.
    Netscape hingegen "denkt" sich immer was neues aus.
    So wie es der Internet Explorer macht, so will ich es haben.

    Internet Explorer:
    Quelltext: http://www.äöü.de
    Statuszeile: http://www.äöü.de
    alert: http://www.äöü.de
    Fehler: http://www.äöü.de

    Netscape:
    Quelltext: http://www.äöü.de
    Statuszeile: http://www.\u00e4\u00f6\u00fc.de
    alert: http://www.äöü.de
    Fehler: www.%e4%f6%fc.de nicht gefunden

    Was soll das? Wie kommt das? Wie kann ich das ändern?
    Für Tipps wäre ich echt dankbar.

    (PS: Ich brauche das in vergleichbarer Form für eine relativ komplexes mailto-script.)
     
  2. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    Nunja, dann bleibt die Möglichkeit die Mail in Kopie einfach an den Versender zu schicken, dann der kann sich diese bei Bedarf selbst in die Outbox packen oder halt auf Umlaute im Subject verzichten, da man meines Wissen dem Netscape die automatische Kodierung nicht abgewöhnen kann, denn egal wie du es verpackst, in dem Moment wo der Request auf eine neue Seite erfolgt (in dem Fall der Aufruf des Mailclientes), erfolgt auch die Kodierung. Dies liegt einfach außerhalb des Einflußbereiches einer HTML-Seite.

    Gruss, Matthias

    PS: Bei Netscape "könnte" es noch eine Variable in der prefs.js, um die Kodierung abzustellen. Sonst fällt mir zu dem Thema nichts mehr ein.
     
  3. Pedant

    Pedant Byte

    Registriert seit:
    28. September 2002
    Beiträge:
    106
    Ein funktionierendes serverbasierendes Formular habe ich schon.
    Aufgabe meines nicht funktionierenden Formulars soll es sein, innerhalb einer Arbeitsgruppe oder an diese Arbeitsgruppe Mails zu verschicken an beliebig zusammengestellte Empfänger (alle Teil der Arbeitsgruppe), die letztendlich über den lokalen Mail-Client versendet werden, damit sie auch in dessen Out-Box gespeichert werden, was bei serverbasierendem Mailversand nicht der Fall ist.
    Ich heul dann noch ein bisschen alleine weiter.
    Vielen Dank für Deine Aufmerksamkeit
    Gruß Frank
     
  4. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    > Ich weiß nicht wie\'s Dir geht, aber ich könnte heulen.

    Ich nicht. Da es keine brauchbare Lösung geben wird (liegt halt an mailto und den unterschiedlichen Implementierungen. - Kann mir vorstellen, dass es mit dem IE auf einem Mac auch nicht geht.), würd ich einfach einen formmailer nehmen und gut ist.

    Gruss, Matthias
    [Diese Nachricht wurde von kalweit am 02.06.2003 | 00:27 geändert.]
     
  5. Pedant

    Pedant Byte

    Registriert seit:
    28. September 2002
    Beiträge:
    106
    ;alert(fred);location.href=fred;}">
    Variante 4
    </a>
    </body>
    </html>

    (Mein Standard-Mail-Client ist Netscape)

    Mit dem Internet Explorer funktionieren alle vier Varianten.
    Mit Netscape funktioniert KEINE einzige.

    Die Varianten 1, 3 und 4 zeigen bei alert() ein "ä", der Betreff in der Mail bleibt aber einfach leer.
    Variante 2 bewirkt garnichts, kein alert(), keine Mail, keine sonstige Reaktion und nicht einmal einen javascript: Fehler.

    Für den Body (&body=string) der Mail habe ich diese Probleme in den Griff bekommen.
    Zwar auch nur mit Fallunterscheidung
    if (navigator.appName=="Netscape")
    und Umwandlung per escape(string)
    und vielfacher Zeichenersetzung per
    string.replace(a, b)
    und im Ergebnis eine Mischung aus %Ersatzzeichen und Htlm-Code, aber es funktioniert.
    Nur mit dem Betreff (?subject=string) geht es nicht vorwärts.
    Der Unterschied in meinem Htlm/Script ist, dass ich den Wert für body aus einer <TEXTAREA> und den Wert für subject aus einem <INPUT TYPE="edit"> Feld herauslese, aber dass ist bei meiner reduzierten Testdatei beides nicht relevant.

    Ich weiß nicht wie\'s Dir geht, aber ich könnte heulen.
    Gruß Frank
     
  6. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.487
    Netscape wandelt nur Sonderzeichen automatisch in ASCII-Zahlenwerte um (da die in urls eigentlich nicht erlaubt sind und bei manchen Servern zu Fehlern bei der Seitenauslieferung führen). % bzw. \u00 sind Steuerzeichen, damit ein Server weiss, dass ein ASCII Zeichen folgt. Normalerweis musst du dich nicht weiter darum kümmern, ausser die Url per http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#escape kodieren lassen (bzw. besser durch entsprechende serverseitige Maßnahmen). Auf der Zielseite sollte ein Browser in der Lage sein, daraus wieder lesbaren Text zu machen.

    Gruss, Matthias
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen