LenaLuna: bug? beim laden via img = new Image();

Beitrag lesen

hallo lg lois

-habe dein problem kurz unter die lupe genommen ;).
-folgender code funktioniert:

var img;

function laden_2(ref)
{
 if (img.width <= 0 || img.height <= 0)
  setTimeout("laden_2('" + ref + "');", 500);
 else
  msgWin = open(ref, "imgwin1", "resizable=yes,scrollbars=yes,width=" + img.width + ",height=" + img.height);
}

function laden(ref)
{
 img = new Image();
 img.src = ref;

laden_2(ref);
}

-bei mir war übrigens bei deiner version die alert ausgabe immer auf 0 0.
-das problem ist, wenn du ein bild lädtst, so sind die eigenschaften erst nach beenden des ladevorganges verfügbar.
-ob du das bild in einer html-seite definierst oder du zuerst ein image-objekt kreierst ist egal.
-die lösung ist. die erste funktion laden() ist klar.
-wir definieren ein image-objekt und weisen die bild-adresse zu.
-damit lösen wir ja den ladenvorgang aus.
-jetzt rufe ich die funktion laden_2() auf.
-diese funktion ruft sich so lange (mit einer versögerung von 500ms) immer wieder selber auf, bis die breite und höhe des bildes verfügbar ist.
-erst dann öffnen wir das fenster und laden das bild.
-du könntest auch versuchen dies mit einem onload-handler zu lösen.
-funktioniert leider nicht auf allen browsern.

-noch was. achte darauf, dass du den parameter

"resizable=yes,scrollbars=yes,width=" + img.width + ",height=" + img.height

der open-funktion ohne leerzeichen definierst. netscape 4.x hat sonst probleme. also keine leerzeichen nach dem komma.

gruss LenaLuna