Hallo worst_case,
ich möchte auf einem Webserver...
<selfhtml-interrupt>
Möchtest Du das? Das ist JavaScript, das sind DOM Operationen, das ist ein Webclient (also der Browser), kein Server.
URLs wie &-usr=*****&-pwd=*****
in die wilde weite Welt zu verteilen ist tödlich. Ich kenne dein Kamerasystem nicht, aber die Befürchtung ist, dass man mit Kenntnis von usr und pwd die Kontrolle über die Kamera übernehmen kann.
Noch tödlicher ist, die Defaultwerte stehen zu lassen, wonach es bei Dir aussieht. Ändere das bitte. Dringend.
Wenn die Kamera nur unter deiner Aufsicht betrieben wird und nur in deinem hausinternen Netz, dann ist es nicht so dringend. Aber besser wär's trotzdem.
</selfhtml-interrupt>
Applegeräte (Safari) zeigen das Bild meist nicht an.
Das ist schwierig zu diagnostizieren. Du schreibst "Geräte". Sind das mehrere iPhones? Oder auch Apple Desktops oder iPads?
Auf einem iPhone ist die Fehlersuche schwieriger, weil Mobiltelefone keine Browser-Entwicklerwerkzeuge haben. Bei Android kann man das über USB debuggen, wie das bei Apple geht, weiß ich nicht. Auf einem Mac sollte der Safari Entwicklerwerkzeuge haben. Wenn der Fehler da auch auftritt, solltest Du dort zuerst ansetzen.
Läuft der Request auf einen Timeout? Apple verwendet vielleicht andere Timeoutwerte. Das siehst Du in den Entwicklerwerkzeugen, die auch ein Safari hat. Schau auf die Netzwerkzugriffe und in die Konsole, ob Fehler protokolliert werden.
Die erste Frage ist, ob das Problem im Safari liegt oder ob die Kamera mit Safari-Requests nicht klarkommt. Das sollte sich auf diese Weise herausfinden lassen.
Ob dein JavaScript okay ist, kann ich nicht beurteilen. Es sieht aber merkwürdig aus, und es fehlt auch Entscheidendes. Vor allem ist unklar, was es mit den globalen Variablen first_start und preload auf sich hat, und wie der erste Aufruf von bild_neuladen zu Stande kommt. Es kann sein, dass Safari ein paar Dinge anders timed und es dadurch zu sogenannten Race-Conditions kommt, die das von Dir geschilderte "mal geht's, mal geht's nicht" erklären können.
Eventuell musst Du mehr Code zeigen, und Du müsstest vielleicht auch erklären, was Du mit dieser first_start und bild_neuladen-Logik erreichen möchtest.
Rolf
sumpsi - posui - obstruxi