aktuellen Dateinamen auslesen $pathname ohne Pfad?
Alexander
- javascript
Hallo,
Ich versuche gerade mit JavaScript eine Funktion zu basteln mit der beim Anzeigen der Startseite automatisch ein Frameset geöffnet werden soll. Ich überlege gerade, wie ich den Namen der aktuellen Seite in eine if-Abfrage stecken kann, so daß nur der Name hinter dem slash angezeigt wird. Mit $pathname habe ich den ganzen Pfad, ich will aber nur den Namen der Datei haben.
Ich denke das könnte evtl. mit regular Expressions und substr gehen. Wie kann ich mit Hilfe von substr und regExp die Position des slashes auslesen, um dann bei Vorhandensein der Startseite, dieselbige zusammen mit der Navigationsseite im Frameset auszugeben.
Aber wie kann es dann weiter laufen ?
Mein Skript sieht bis jetzt so aus.
<script language="JavaScript">
var htmlFile = window.location.pathname;
if (frames.length==0) {
document.write(' <frameset cols="26%,*">'+
'<frame name="Navigation" src="nav.html" marginwidth="10" marginheight="10" scrolling="auto" frameborder="0">'+
'<frame name="Startseite" src="'+htmlFile+'" marginwidth="10" marginheight="10" scrolling="auto" frameborder="0">'+
' </frameset>');
/*document.write(htmlFile);*/
alert (location.href);
}
</script>
Viele Grüße,
Alexander
Hi,
Ich denke das könnte evtl. mit regular Expressions und substr gehen.
Was spricht denn gegen ein einfaches lastIndexOf() mit substring()? Dann läuft es sogar mit JavaScript 1.0 (substr: 1.1, RegExp: 1.2).
Siehe http://Coding.vampirehost.de/Systemvariable: doc_File (Dateiname inkl. Dateiextension)
Gruß, Cybaer
Hi,
Ich denke das könnte evtl. mit regular Expressions und substr gehen.
Was spricht denn gegen ein einfaches lastIndexOf() mit substring()? Dann läuft es sogar mit JavaScript 1.0 (substr: 1.1, RegExp: 1.2).
Siehe http://Coding.vampirehost.de/Systemvariable: doc_File (Dateiname inkl. Dateiextension)
Gruß, Cybaer
Hi,
Danke erstmal; ich glaube es geht schon so irgendwie. Jedoch weiß ich nicht genau, wie ich die Länge des Strings bestimmen kann.
Ich habe versucht das zu umgehen , indem ich mit weiteren substr- anweisungen nach der Endung "html" gesucht habe. Daraufhin bekam ich aber eine Fehlermeldung. Wie könnte das denn gehen?
Mein Script sieht nun so aus:
<script language="JavaScript">
var htmlFile = window.location.pathname;
var Suche = htmlFile.lastIndexOf("/");
var Le = htmlFile.LastIndexOf("html");
if (Le==-1){
var Le = htmlFile.LastIndexOf("htm");
htmlFile=substr(Suche,Le+3);
}
else{
htmlFile=substr(Suche,Le+4);
}
if (frames.length==0) {
document.write(' <frameset cols="26%,*">'+
'<frame name="Navigation" src="nav.html" marginwidth="10" marginheight="10" scrolling="auto" frameborder="0">'+
'<frame name="Startseite" src="'+htmlFile+'" marginwidth="10" marginheight="10" scrolling="auto" frameborder="0">'+
' </frameset>');
/*document.write(htmlFile);*/
alert (location.href);
}
</script>
mfG
Alexander
Hi,
Ich habe versucht das zu umgehen , indem ich mit weiteren substr- anweisungen nach der Endung "html" gesucht habe.
Zu unsauber, fehleranfällig und unnötig. Die Extension wird immer mit einem "." abgetrennt.
Halte Dich ruhig an mein Beispiel. Es bedarf hier zur Lösung nicht nur ein wenig JavaScript-Know-how, sondern auch sonstige Erfahrung im Umgang mit Web-Browsern. Beides fehlt Dir offensichtlich (soll nicht arrogant klingen, aber was soll ich sagen =;-)).
Wenn Du noch nicht die Erfahrung besitzt, meinen (zumal unkommentierten) Code zu verstehen, hier eine Kurzfassung:
path=window.location.pathname;
file=path.substring(path.lastIndexOf("/")+1,path.length);
Oder noch kürzer:
file=path.substring(path.lastIndexOf("/")+1);
Die "große Version" der "Systemvariable" hat halt u.a. den Vorteil, daß sie auch mit Dateinamen inkl. ihrer Pfade umgehen kann. So kann ich mit JavaScript z.B. auch Frames mit Pfad bearbeiten - und zwar parallel online vom Server, wie offline von der Festplatte (obwohl die Pfade dort ja unterschiedlich sind ...).
Gruß, Cybaer
hi,
Ich habe versucht das zu umgehen , indem ich mit weiteren substr- anweisungen nach der Endung "html" gesucht habe.
Zu unsauber, fehleranfällig und unnötig. Die Extension wird immer mit einem "." abgetrennt.
du gehst offenbar fälschlicherweise davon aus, dass es immer eine extension geben müsste.
gruss,
wahsaga
Hi,
du gehst offenbar fälschlicherweise davon aus, dass es immer eine extension geben müsste.
Nein, ich nicht.
Aber wenn er auf "html" und "htm" prüft, dann wird er wohl bei *seinen* Dateien eine haben. =8-)
Oder siehst Du bei *meinem* (kurzen) Beispiel etwas von einer "Extension"? :-o
Gruß, Cybaer