2013-07-10 8 views
5

Ich versuche, die aktuellen Dateinamen aus der URL zu erhalten mit:Erhalten aktuelle Dateinamen von einer URL mit Hilfe von Javascript/jquery, wenn nur Ordnerpfad bekannt ist

$currentFile = window.location.pathname.split("/").pop(); 

Dies funktioniert gut, wenn der vollständige Pfad etwas ist wie :

http://www.yoursite.com/folder/index.php 

Es wird wieder index.php, index.cfm, index.html usw.

Aber wenn die uRL ist http://www.yoursite.com/folder/

Ich kann den aktuellen Dateinamen nicht abrufen, ist dies über js oder jquery möglich?

+0

Nein, da die Standardindexdatei eine Einstellung innerhalb des Webservers ist. Sie können eine Annahme machen und einfach sagen, es ist index.html, wenn Sie einen Ordner laden ... – Populus

+0

Diese URL hat keinen Dateinamen zu bekommen. Können Sie erklären, warum Sie das versuchen? – loganfsmyth

+0

Ja, ich benutze jquery, um Elemente in einer bestimmten Ordnerstruktur/einem Kontakt anzuzeigen/auszublenden, aber nicht für die Datei index.php oder nur für die Datei index.php. – lharby

Antwort

5

Wenn Sie nur den Pfad in der URL haben, können Sie den Dateinamen nicht von ihm abrufen - nicht mit jQuery, keine andere clientseitige Methode verwenden. Dies liegt daran, dass nur der Server, der diese Datei sendet, weiß, was diese Datei ist. Insbesondere gibt es in der Webserver-Konfiguration eine Direktive, die angibt, nach welchem ​​Dateinamen gesucht werden soll, wenn nur der Verzeichnisname angegeben wird. Zum Beispiel in Apache kann diesen

DirectoryIndex index.html index.php home.htm 

sein Dies teilt den Server, der für Anfragen mit nur einem Verzeichnis der Server-Namen wird versuchen, Datei zu dienen index.html aus diesem Verzeichnis; wenn es nicht existiert, dann index.php; wenn das auch nicht existiert, dann home.htm. Wenn dieser auch nicht existiert, hängt das Verhalten von anderen Konfigurationsoptionen ab. Andere Webserver-Software hat ähnliche Konfigurationsoptionen.

Wenn Sie also eine Anfrage wie an einen Server senden, weiß nur dieser Server, welche Datei tatsächlich verwendet wird.

+0

Ausgezeichnete Antwort, danke für die Klärung. – lharby

+0

Tolles Q & A, habe selbst etwas gelernt, +1 Danke – Anil