Auf meiner Website www.digitalfantasyart.de werden Bilder in dem rechten Frame angezeigt. Ich möchte, wenn Ladefehler auftreten ( Timeout u.s.w. ), den Browser dazu veranlassen, das Bild nochmal zu laden.
Ich habe den Eventhandler „onError“ bei Selfhtml gefunden, den ich in dem IMG Tag einsetzen kann, um den Reload() javascript Befehl aufzurufen, um die Seite zu aktualisieren.
Ja, wie auch onabort und onload aber eigentlich muss es korrekt heissen:
parent.frames[0].location.reload();
denn 1. ist parent schon ein spezieller Name fuer window und 2. willst Du ja nicht das Fenster neu laden sondern das was in dem Fenster dargestellt ist; also loaction. qed
denke schon, denn default ist window oder es geht auch mit self.
parent braucht man nur, wenn man ein Script im Parent ansteuern will oder von einem frame in den anderen will. Ob die event-Handler allerdings im NS4 gehen, bezweifel ich eher, denn in Tags geht dort wenig. Grundsaetzlich macht man es anders machen und direkt im Script auf das Object verweisen.
Hallo nochmal,
nicht ganz denke ich, weil ich mich nicht mehr mit JS beschäftige.
Wenn Du ein Image Object hast wie:
var imgObj = new Image();
dann kannst Du die Ressource für das Object nur via:
imgObj.src = "./path/bild.jpg";
laden. Dies wäre die explizite Anweisung das Bild zu laden.
Bevor dies gemacht wird, kannst Du dem Object aber events zuordnen,
die aufgerufen werden während des Ladevorgangs des Bildes:
imgObj.onabbort = Function1; // wenn der Ladevorgang vom User abgebrochen wird
imgObj.onerror = Function1; // wenn beim Laden des Bildes ein Fehler auftritt
imgObj.onload = Function1; // während des Laden des Bildes
Ein Reload ist nur via folgender Konstruktion moeglich, wenn die Ressource schon da ist:
imgObj.src = imgObj.src;
In JS kann man aber Objekten zur Laufzeit neue Methoden und Eigenschaften zuführen:
function ReLoad(prmSrc)
{
if (prmSrc) {
this.obj.src = prmSrc;
} else {
this.obj.src = this.src;
}
}
function myImage(prmSrc)
{
this.obj = new Image(); // embedded Image object
this.obj.src = prmSrc; // embedded Object resource
this.ReLoad = ReLoad; // Methode
}
var MyImgObj = new myImage("./path/bild.jpg");
MyImgObj.ReLoad();
oder
MyImgObj.ReLoad("./path2/bild2.jpg");
So ein Wrapper ungefähr muss sein, da das in JS eingebaute Image Object
keine reload-Metode kennt.
CU