Bild erneut laden, bei Fehler

Hallo!

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.

Würde das in IE und NS funktionieren ?

Gruß,

Marco Vernaglione

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

Hallo!

  1. willst Du ja nicht das Fenster neu laden sondern das was in
    dem Fenster dargestellt ist; also loaction. qed

also wird mittels „location.reload()“ der Inhalt des Frames neugeladen, von dem der Aufruf ausgeht.

Reicht es dann nicht aus nur location.reload zu notieren ?

Gruß,

Marco

Hallo,

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.

Ciao

Hallo,

denke schon, denn default ist window oder es geht auch mit
self.

Nun klappt es aber etwas anders :

parent.frames(1).location.reload()

Grundsaetzlich macht man es
anders machen und direkt im Script auf das Object verweisen.

parent.frames(1).images[0].reload() ?

Gruß,

Marco Vernaglione

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