Linuchs: Javascript: Prüfen, ob Web-Datei vorhanden?

Beitrag lesen

Hallo Rolf,

Es wäre für eine vernünftige Betrachtung sicherlich hilfreich, die Architektur des Systems zu kennen. Linuchs hat zwar schon öfter drüber geschrieben, aber ich lerne nicht die Systemkonzepte aller Stammposter auswendig...

Hier geht es um ein "flaches" HTML-Liederbuch mit 30 Liedern für ein Chor-Projekt. Das erstelle ich lokal ohne Webserver, kann es auf ein Smartphone und natürlich auf meinen Internet-Server laden.

Die projekt.htm enthält das Inhaltsverzeichnis und 30 iframes, in die je eine text.htm geladen wird. Per Link kann man vom Inhaltsverzeichnis gezielt ein Lied anspringen und vom Lied zurück zum Inhaltsverzeichnis.

Jede text.htm hat wiederum einen audio-Abspielbalken, der bei Klick die zum Lied gehörende audio.mp3 (sicherheitshalber auch zusätzlich eine audio.ogg, weil firefox anfangs die mp3 ignorierte) lädt und abspielt.

Ebenfalls hat jedes Lied eine noten.htm, die ein noten.jpg enthält.

Es müssen also 30 x 5 = 150 Dateien vorhanden sein.

Um zu prüfen, ob alle Komponenten des Liederbuchs vorhanden sind, muss ich jetzt also 30 mal dieses tun (und künftig bei jedem neuen Projekt wieder):

  1. Klick auf den Abspielbalken, ob entweder die audio.mp3 oder die audio.ogg auf dem Server ist. Wenn es läuft, kann die andere noch fehlen,
  2. Extra-Klick für die audio.ogg
  3. Klick auf das Noten-Symbol in der text.htm, ob die noten.htm und darin die noten.jpg verfügbar ist.

Was ich möchte: Pro text.htm eine rote Warnung: audio.mp3 / audio.ogg / noten.htm / noten.jpg fehlt.

Die sehe ich beim Scrollen des Liederbuchs, ohne mich durchklicken zu müssen.

Wenn zum Schluss alles okay ist, kann ich die zentrale check.js entfernen und die Abfragen unterbleiben.

Hier mal eines der 30 Lieder zum Spielen: south_australia.htm

Edit:

Es wäre natürlich pfiffig, per PHP gleich auf dem Server die Fehl-Meldungen einzubauen, aber eine htm-Datei führt kein PHP aus und eine lokale php-Datei wird vom Firefox nicht angezeigt. Deshalb die Frage nach JS.

Gruß, Linuchs