• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Back-Slash mit IExpl auslesen

Martin Grüning

New member
Hallo, Forum-BenutzerInnen!

Ich programmiere gerade eine kleine Funktion zum Auslesen des Dateinamens der Datei, die in einem Frame geladen ist. Dazu wandle ich den Pfadnamen in einen String um, aus dem ich ein Stück „ausschneide“:

function dateiname ()
{
pfad=parent.kopf.location.pathname; //Pfadname erfragen
anfang = pfad.lastIndexOf("/"); letzte Position von „\“ erfragen
ende = pfad.lastIndexOf("."); letzte Position von „.“ erfragen
file=pfad_k.slice(anfang+1,ende); Dateinamen ausschneiden
}

Als String des Pfadnamens erhalte ich so etwas (ist nur Beispiel):
/D:site_versuch\kopfdateien\kopf_1.htm

Das Ende des Dateinamens kann ich problemlos erfragen. Der Anfang läßt sich nur im NC erfragen, da dort „/“ und „\“ gleich gewertet werden. Der IExpl kennt kein „\“. Dieses Zeichen läßt sich auch nicht mit einem alert(„\“); ausgeben, scheint also terra inkognita zu sein. Die Folge: Der IExpl liefert mir mit dieser Funktion nur den ersten Slash an der Stelle 0 zurück.

Sicher ist es eine Möglichkeit, direkt nach dem Namen des Ordners zu suchen, in dem die Datei abgelegt ist. Ich möchte aber in Zukunft diese Funktion für alle Frames ablaufen lassen und deshalb solche Umwege vermeiden.

Wie kann ich den Back-Slash richtig auslesen?
Gibt es Möglichkeiten zur Maskierung (ähnlich der Umlaute in HTML)?
Welche alternativen Möglichkeiten gibt es, das Problem in den Griff zu kriegen? (Vielleicht zeichenweises Überprüfen, ob ein Zeichen zur Menge der dem IExpl bekannten Zeichen hinzugehört?)

Vielen Dank schon im Voraus!

Mit freundlichem Gruß,
Martin Grüning
 
hi Martin,

Code:
<script language="JavaScript" type="text/javascript">
<!--
var Server = top.location.href;
var makeArray = Server.split("/");
var serverName = makeArray[2];

alert(serverName);
//-->
</script>
Code:
alert('\\\');
 
Zuletzt bearbeitet:
Problem gelöst

Durch Zufall habe ich selbst herausgefunden, wie es geht.

Der NC liest die Zeichen „/“ und „\“ aus , wenn man
textstring.lastIndexOf(„/“);
als Befehl eingibt.

Der IExpl liest das Zeichen „\“ nicht aus und meldet einen Fehler. Bei dem Befehl
textstring.lastIndexOf(„/“ );
sucht er wirklich nur nach diesem Zeichen. Wenn man das Zeichen „\“ allerdings maskiert, dann liest es auch der IExpl aus. Das sieht dann so aus:
textstring.last.IndexOf(„\\“);
Der NC versteht diese Maskierung aber nicht und sucht nach zwei Back-Slashs (richtiger Plural?).

Die Lösung ist also eine einfache Browserweiche.

Mit fruendlichem Gruß,
Martin Grüning
 
Zurück
Oben