Sven Rautenberg: Datei auf Existenz prüfen

Beitrag lesen

Moin!

Ich habe bisher keine Funktion finden können, die bzgl. der Existenz einer HTML-Datei z.B. Werte True/False zurückgibt (oder könnte man "onError" benutzen?).

Gibt es eine Lösung, die auf IE und NN funktioniert, und zwar sowohl auf dem Windows als auch auf dem Mac?

Wie dir bereits versichert wurde, benötigst du Serverunterstützung. Nur der Server weiß, ob es eine URL gibt oder nicht.

Falls nicht, schickt er zusammen mit dem HTTP-Fehlercode 404 eine HTML-Seite mit der Fehlermeldung. Beim Apache kann man die ganz simpel durch eine eigene Seite ersetzen, in der selbstverständlich auch Javascript enthalten sein darf. Und oh Wunder: Wenn du auf so einer Fehlerseite mal location.href ausgibst, dann erhälst du nicht die URL der Fehlerseite, sondern die angeforderte, aber nicht vorhandene URL.

Du brauchst also im Prinzip nur ein Javascript schreiben, welches auf der Fehlerseite enthalten ist, die location.href auseinandernimmt, feststellt, welche Seitennummer angefordert wurde, diese Zahl um Eins erhöht und dann die neue Seite abfordert. Sozusagen (aber das funktioniert natürlich so einfach nicht): location.href = location.href + 1;

Diese Fehlerseite bindest du mit einer .htaccess-Datei ein. Das kann auch gtanz speziell für ein einzelnes Verzeichnis gelten, wenn du noch andere Bereiche hast, die sich nicht durchzählen lassen. Oder dein Javascript prüft, ob die nicht gefundene URL überhaupt zählbar ist.

Einziger Schwachpunkt: Wenn du über die letzte Seite hinauswanderst, wird dein Skript endlos weiter hochzählen, wenn du keine Abbruchbedingung (also beispielsweise eine maximale Seitenzahl) angegeben hast.

Und noch ein Schwachpunkt: Abwärts blättern geht so natürlich auch nicht, denn die Fehlerseite zählt nun mal aufwärts. Dazu müßtest du noch einen Parameter in der URL mit übergeben, der für den normalen Lauf vollkommen uninteressant ist, aber der Fehlerseite sagt, ob sie aufwärts oder abwärts zählen soll.

Du siehst: Es gibt eine Reihe von Möglichkeiten. :)

- Sven Rautenberg

--
Signatur oder nicht Signatur - das ist hier die Frage!