Javascript leerzeichen in einen html string einfügen - mac os x - smb file-string

Ich sterbe hier gerade den Nerventot :rage:

Habe mir, weil ich es auf einem „Mac“ lokal ausführen möchte, ein kleines Javascript geschrieben.

Vorab:

Ja ich habe gegoogelt, ja ich kenne die Foren und die tollen Seiten und ja ich habe ein Buch über Javascript :smile:

Folgendes:

Ich erzeuge einen String, der am Ende einen „smb:“-String bzw. Pfad ergibt, da dies bei mir ja ein Filesystem Mac OS X ist. Diesen String bzw. Pfad übergebe ich als „klickbare Variante“, so dass in meiner Webseite, die eine Art Kontrollpanel ist, ein Weblink steht!
Das sieht auch alles sehr gut aus und funktioniert!
Ich lasse mir den gesamten Link zur Kontrolle mit document.write(link); ausgeben und er sieht vollkommen korrekt aus!

Der Link wird mit den entsprechenden - Achtung Wichtig - „Leerzeichen“ (zwischen datum & servername) angezeigt!

=> Link: [smb://nas.meinnas.de/datensicherung/datum servername/logfiles]

Und mit document.write(link) wird die Ausgabe als einfacher Text bestätigt:

=> Text: [smb://nas.meinnas.de/datensicherung/datum servername/logfiles]

Dient nur der Kontrolle, ob ich die Variable „link“ für die Erzeugung des HTML-Link richtig erstellt habe.

Jetzt kommt es :frowning:

Wenn ich nun mit der Maus über diesen Link fahre, dann wird mir an der Stelle mit dem Leerzeichen, dass ich leider nicht vermeiden kann, da es von einem Programm nun mal so angelegt wird, mit dem folgenden, zum angezeigten, abweichenden Wert angezeigt:

=> [smb://nas.meinnas.de/datensicherung/datum%20servername/logfiles]

Somit, wenn ich nun drauf klicke, kommt eine Fehlermeldung (Pfad nicht gefunden = logisch).
Kopiere ich aber den Pfad vom einfachen Text in meinen Datei-Browser und schicke ab, dann geht es, weil da auch das Leerzeichen sauber angenommen wird.

Da ich den Link / Pfad vorher in eine Variable zusammenstückeln muss, weil sich jeden Tag das Datum ändert, habe ich natürlich alles mögliche an Optionen versucht, wie z. B.
var link = variable1 + " " + variable2
var link = variable1 + ' ' + variable2
var link = variable1 + ' \ ' + variable2

Aber egal was ich versuche, ein erzwungenes Leerzeichen wird im Kontroll-Text und in der HTML-Ansicht des Links <a href="mein ganzer link">mein ganzer link</a> korrekt auf der Webseite angezeigt, aber wenn ich den Link dann aufrufe, bzw. mit der Maus drüber fahre, wird an der Stelle mit dem Leerzeichen immer das %20 eingesetzt.

Ich denke, das hat was mit dem Dateipfad und dem OS zu tun, hoffe aber dass es noch einen Trick gibt, das irgendwie zu beeinflussen.

Sollte was fehlen, bitte gerne nachfragen, dann ergänze ich.

Bin jetzt auch kein Javascript-Programmierer, also bitte habt Geduld mit mir :smile:
Bin schon froh, dass ich die Funktion geschrieben habe für die Datumsberechnung … schön zu wissen das javascript die Monate von 0-11 zählt und nicht von 1-12 … grrrr

DANKESCHÖN

Hallo,

schau die mal das an: Link

Das sind valide Links für einen Web Browser. Der Datei Browser kann auch was anderes…

Teste mal: Deinen Link in deinen Web-Browser (Safari?) eingeben.

fg

Dirk_P

Sorry, aber das hat leider garnix mit dem Problem zu tun.
Aber dennoch Danke sicherlich für Andere hier und da hilfreich.

Gelöst habe ich es, nach Tipp eines gelernten Programmierers, mit der scheinbar einzig wahren Möglichkeit … dem Befehl: decodeURI(urlpfad); :smile:

Dieser Befehl, als kleiner Nebensatz, hat den Befehl „escape“ abgelöst.

Funzt zwar immer noch nicht im Safari, aber im Firefox; das reicht mir :stuck_out_tongue:

CU

Hallo,

das ist das was ich meinte: Was du gebaut hattest war keine URL. Der Befehl macht aus dem „SMB-…“ eine URL… Und wie die aussehen müssen stand in dem Artikel.

fg

Dirk_P

Nein, Du hast leider meine Antwort nicht verstanden.
Ein Link ist auch ein SMB: oder auch ein FILE:

Jedenfalls für Mac OS X.

Die Lösung ist die Decodierung und somit Auflösung der Sonderzeichen in dem Link.