Existenz von Bild Dateien mittels onError event überprüfen
Sven Franck
- javascript
Hallo,
... zerbreche mir seit einiger Zeit den Kopf über den onError Event.
Vielleicht kann mir jemand weiterhelfen.
Versuche mittels onError zu testen, ob ein Bild (Name = [i].jpg)existiert. Falls das nicht der Fall ist wird in NoPix [i] um 1 erhöht, und die neue URL (2.jpg) geladen. Bei erneutem Fehler wiederholt sich der Vorgang...
PROBLEM: Egal, ob das Bild existiert oder nicht, es werden STETS NoPix() und YoPix() aufgerufen (siehe Script unten)!!!
Habe keine Ahnung, wie man dies vermeiden kann.
Wäre für ein wenig Erleuchtung sehr dankbar.
Schon mal Vielen Dank für eventuelle Antworten.
Sven Franck
Das Script aufs Wesentliche reduziert:
<script language="JavaScript"><!-
function testPix (1.jpg) {
var tester = new Image();
tester.onLoad = YoPix ();
tester.onError= NoPix ();
tester.src=1.jpg;
}
function YoPix() {
alert('Bild wird geladen');
}
function NoPix() {
alert('Bild gibts nicht [i]');
}
//--></script>
im HTML Teil:
<script language="JavaScript">
<!--
testPix (1.jpg);
-->
</script>
Halihallo Sven
Das Script aufs Wesentliche reduziert:
Danke.
function testPix (1.jpg) {
^^^^^ sollte variabel sein, sprich: Variable, eg. img_name
function testPix (img_name) {...}
tester.src=1.jpg;
^^^^^^ und hier die Variable img_name einsetzen
tester.src=img_name;
^^^^^^(2) String-Konstanten werden in Quotes geschireben => '1.jpg'
<script language="JavaScript">
<!--
testPix (1.jpg);
^^^^^^ String-Konstanten in Quotes!
Viele Grüsse
Philipp
hi,
Das Script aufs Wesentliche reduziert:
<script language="JavaScript"><!-
function testPix (1.jpg) {
var tester = new Image();
tester.onLoad = YoPix ();
tester.onError= NoPix ();
tester.src=1.jpg;
}
-im funktionskopf nicht den string reinschreiben, sondern einen variablennamen.
-onload und onerror (klein geschrieben).
-die klammern weg bei YoPix und NoPix
-statt 1.jpg den variablennamen, den du im kopf hast. (oder 1.jpg in "")
->
function testPix(bild) {
var tester = new Image();
tester.onload = YoPix;
tester.onerror = NoPix;
tester.src = bild;
}
in den Funktionen kannst du das Bild Objekt (tester) einfach mit this ansprechen, zB:
function NoPix() {
alert(this.src + " existiert nicht");
}
im HTML Teil:
<script language="JavaScript">
<!--
testPix (1.jpg);
-->
</script>
1.jpg in ""
Gruß
Christian