• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Fehlermeldung bei nicht vorhandener Datei ausgeben (lokales HTML)

hatho

Neues Mitglied
Hallo Zusammen,
ich brauche mal die Hilfe von Profis! :) Ich selbst bin eher bei der Systemberatung und der Systemintegration zu Hause...

Ich baue gerade eine HTML-Seite, die lokal (ohne jegliche Netzwerkverbindung) auf einem PC (Win7, VLC, Firefox 20, r-kiosk PlugIn, VLC-Firefox-PlugIn) laufen soll. Das Ganze wird eine Touchscreen-Oberfläche auf HTML-Basis für ein mittleres Projekt. Dort werden verschiedene Seiten mit Infos aufgerufen. Außerdem gibts spezielle Seiten mit Videos, die im Rahmen des Gesamtprojekts nach und nach dazukommen.
Das Problem ist nun, dass die Videos nicht von Anfang an vorhanden sind, aber trotzdem verlinkt werden müssen. Das ganze System läuft autark und die Oberfläche dazu wird während der Laufzeit nicht wieder angefasst. Die Videos dazu werden nach und nach über USB von einem Dienstleister in ein spezielles Verzeichnis gespielt.

Also, eigentliches Thema. :)
Ich möchte die Videos auf Buttons verlinken - es soll aber eine Fehlermeldung ausgegeben werden, wenn die Videodatei an dem Zielort noch nicht vorhanden ist. Ich habe mir bisher mal das "onError"-Event angeschaut. Das funktioniert aber offensichtlich nur mit Bildern. Ich kann leider nicht als "Hilfskrücke" auch zu jedem vorhandenen Video auch ein entsprechendes Bild hinterlegen lassen.

Hat jemand eine Idee, was man da machen kann?

Vielen Dank und viele Grüße,
hatho
 
Zuletzt bearbeitet:
Wird für diese Anwendung ein Webserver verwendet über den die Dateien aufgerufen werden sollen? Also eine http-URL?
Wenn ja, dann wäre es das einfachste Du konfigurierst eine Error-Seite für den HTTP-Status 404 die dann kommt, wenn eine aufgerufene URL nicht existiert. Bei Apache-Webservern geht das mittels ErrorDocument.

Wenn nein, dann wäre es das einfachste Du legst pro URL die nicht existiert manuell eine Datei mit dem exakt selben Dateinamen an die einen entsprechenden Hinweis liefert. Wenn es dann die Inhalte für diese Datei gibst, tauschst Du einfach nur den HTML-Code der Datei aus.

Etwas schwieriger wäre es, wenn man über JavaScript/AJAX prüfen würde, ob ein Linkziel existiert. Dafür könnte man z.B. einen AJAX-Request an den aufzurufenden Link abschicken und aus dem Response vom Server auslesen, welchen HTTP-Status dieser Request ergibt. Das geht z.B. so:
javascript - How to callback a function on 404 in JSON ajax request with jQuery? - Stack Overflow
Problem dabei: ich bin mir unsicher, ob so etwas ohne einen Webserver funktioniert. Ohne Webserver und mit reinem HTML ist die Prüfung des Vorhandenseins einer Datei unmöglich.
 
Hi,
vielen Dank erstmal für die Tips.
Also, das ganze läuft lokal auf dem PC, ohne Webserver oder Ähnliches. Insofern wird das mit der 404er-Seite wohl eher schwierig - leider.
Aber bei dem Javascript ist mir etwas eingefallen. Die Videos werden auf den HTML-Seiten mit dem VLC-Plugin abgespielt. Das klappt auch soweit. Wenn das Video allerdings nicht verfügbar ist bleibt dort nur das kleine "Baustellenhütchen" stehen, ohne weitere Meldung.
Ich habe nun gesehen, dass es eine Javascript-Funktion "vlc.playlist.isPlaying" gibt, die wntsprechend true oder false ausgeben soll. Damit müsste man doch eigentlich als if/else Funktion eine alter-message ausgeben können.
Kennt sich damit jemand aus? Ich jedenfalls nicht so dolle... ;)
Danke schonmal!


VG, hatho
 
VLC ist nur ein Plugin, welches sich in den Browser einnistet. Welche Möglichkeiten man damit hat um ggfs. die Webseite mit dem angezeigten Video interagieren zu lassen, weiß ich nicht. Die von dir genannte "isPlaying"-Variable scheint auf den ersten Blick passend - du musst es nur ausprobieren. Also beim Laden der Seite (Stichwort onload) musst Du diesen Wert prüfen und entsprechend einen Hinweis anzeigen.

Allerdings: das entspricht jetzt nicht dem was ich von dir verstanden hatte. Ich dachte die HTML-Datei wäre nicht da. Wenn Du nun aber doch die HTML-Datei pro Video erstellen willst, auch wenn das anzuzeigende Video nicht vorhanden ist, dann kannst du doch wie von mir vorgeschlagen auch gleich den Inhalt der HTML-Datei entsprechend anpassen.
 
Hi!Ich danke dir erstmal für die Lösungsansätze!Ich habe nun eine Lösung gefunden, die mir das VLC-Plugin zum Teil liefert. (VLC-Plugin muss leider sein, da wir keinen Einfluss darauf haben in welchem Codec die Videos vom Dienstleister geliefert werden.)Ich habe das jetzt folgendermaßen gelöst:

<script language="JavaScript">
function Fehlermeldung(vlc)
{
var vlc = document.getElementById("vlc");
if (vlc.playlist.isPlaying == false) {
alert('Dieses Video ist in Kürze verfügbar! \n \nThis Video will be available soon!');
window.location = 'javascript:history.back(1)';
}
}
</script>

So gibt er eine Fehlermeldung aus, wenn das VLC-Plugin sagt, dass es kein Video abspielt (da ja nicht vorhanden). ;)VG, hatho
 
Das ist aber nicht schön. :(

Anstelle des Alert würde ich ein HTML-Element einblenden, und history.back() geht gar nicht. Automatische Redirects entziehen dem Besucher die Kontrolle. Dadurch wird der Eindruck erweckt, man würde an Content vorbeigeleitet, den man nicht sehen darf. Erstelle statt dessen lieber einen Button mit Link auf die Hauptseite.
 
Zurück
Oben