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

[JQUERY] Dokumentsteuerung über aktuellen Dateinamen

Nalia

New member
Hallo zusammen,
ich habe in meinem neuen Projekt die Steuerung bestimmter Sachen über den Dateinamen realisiert. Also etwa so über die document.ready.function:

Code:
switch (getCurentFileName()) {
   case 'index.php':
   showNews();
   break;

   case 'bilder.php':
   showThumbs();
   break;

   ...
}


function getCurentFileName() {
    var pagePathName= window.location.pathname;
    return pagePathName.substring(pagePathName.lastIndexOf("/") + 1);
}

Das ganze Paket funktioniert auch soweit, jedoch erst ab 'Seite2', sprich bei allen anderen Seiten und auch der index.php, sofern ich sie zum zweiten Mal aufrufe.
Nicht jedoch, wenn ich das Projekt starte und die index.php zum ersten Mal erscheint. Warum funktioniert das nur im weiteren Verlauf und nicht am Anfang. Es ist doch ein ganz normale document.ready-Aufruf wie auf jeder anderen Seite auch. Ich habe schon versucht, eine andere Seite nur mit einer Weiterleitung vorzuschalten, aber auch dann startet der Aufruf beim erstmaligen Aufruf der index.php nicht.

Weiß jemand Rat?
LG
Nalia
 
Wie rufst du denn die index.php beim ersten Mal auf? Steht da wirklich ".../index.php" in der Adresszeile? Was bekommst du denn von getCurentFileName() in diesem Fall?

PS: current schreibt man mit zwei "r"s.
 
Ich weiß, dass man current mit zwei 'r' schreibt, diese Funktion habe ich so 1:1 aus dem Internet kopiert und hatte keine Lust, daran herumzudoktoren.
In der Adresszeile steht nicht index.php, aber da ich keine home/start/index.html habe, wird sie ja automatisch aufgerufen. Die Funktion getCurentFileName() gibt bei diesem ersten Aufruf auch nichts zurück.
 
Genau das ist dann das Problem. Woher soll denn der Browser wissen, dass die Datei dann index.php und nicht z.B. index.html heißt.

An deiner Stelle würde ich dann einfach deinen Switch entsprechend erweitern:
Code:
switch (getCurentFileName()) {
   case '':
   case 'index.php':
   showNews();
   break;

   case 'bilder.php':
   showThumbs();
   break;

   ...
}
 
Aber ich war der Meinung, dass das mit der Fn getCurentFileName() herausgefunden wird. Die wird ja aufgerufen, wenn das Dokument geladen wurde. Dann sollte ja auch feststehen, wie der Dateiname lautet.
But nevertheless, deine Vorschlag funktioniert. Ich wusste gar nicht, dass diese Schreibweise auch erlaubt ist, daher danke für deine Mühen (auch wenn ich gerne gewußt hätte, warum meine Fn nicht beim ersten Aufruf das tut, was sie soll...).
 
Die Funktion wird ja auf dem Browser aufgerufen. Woher soll der wissen, wie die Datei heißt, wenn man es ihm nicht sagt?

Somit ist eigentlich der Funktionsname nicht besonders gut gewählt. Denn der Browser hat eigentlich keine Ahnung, welche Datei genau auf dem Server ausgeführt/ausgeliefert wird. Der Browser weiß nur, welchen Pfad er vom Server angefragt hat. Der Server kann dann intern etwas ganz anderes machen.
 
Zurück
Oben