Kai Langenbach: Fenstergröße anpassen aufgrund der Größe einer Grafik

Hallo zusammen !

Ich habe eine Funktion, die den Namen eines Bildes übergeben bekommt, dann die Größe diese Bildes ermittelt und dann ein entsrechend großes Browserfenster öffnen soll. Dies Funktioniert jedoch nur ab dem zweiten Aufruf der Seite. Es scheint mir ganz so, daß die Eigenschaften .width und .height des image objektes nur dann sinnvolle Werte ergeben, wenn das Image entweder auf der Seite selbst vorhanden ist, oder zumindest im cache liegt. Kann mir einer dazu genaueres sagen, bzw. weiß jemand Rat.

Vielen Dank, kai.

function openwin(myimage)
   {mynew = new Image();
    mynew.src = myimage;
    mystring = "toolbar=0,locationbar=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width="+mynew.width+",height="+mynew.height;
x = window.open("","",mystring);
x.document.open();
x.document.write('<html><head></head><body><img ... </body></html>');
}

  1. Hallo Kai!

    Ich kämpfte letztens mit einem ähnlichen Problem. Was für einen Browser benutzt Du? Ich glaube unter Netscape dürfte es sogar noch mehr Probleme geben.

    Weil: Du setzt resizable auf 0, d.H. wenn ich recht informiert bin auf "false". Damit haben einige Browser das Problem, daß sie die Größenangaben width und heigt nicht mehr richtig hinbekomen. Versuchs doch mal mit resizable=yes.

    Würd mich interessieren, ob das funktioniert...
    Viel Spaß noch!

    Jürgen

    1. Hallo Kai!

      Ich kämpfte letztens mit einem ähnlichen Problem. Was für einen Browser benutzt Du? Ich glaube unter Netscape dürfte es sogar noch mehr Probleme geben.

      Weil: Du setzt resizable auf 0, d.H. wenn ich recht informiert bin auf "false". Damit haben einige Browser das Problem, daß sie die Größenangaben width und heigt nicht mehr richtig hinbekomen. Versuchs doch mal mit resizable=yes.

      Würd mich interessieren, ob das funktioniert...
      Viel Spaß noch!

      Jürgen

      IE4, aber das Problem was ich habe liegt definitiv nicht am Fenster.
      Ich hab mir mal die .width und die .height Werte meines Image Objektes ausgeben lassen und diese wurden wirklich erst dann korrekt ausgegeben, nachdem (!) das Objekt vom Broser angezeigt worden war.
      Die Lösung von Christian scheint mir sehr vernünftig zu sein !

      bye, Kai

  2. Hallo zusammen !

    Ich habe eine Funktion, die den Namen eines Bildes übergeben bekommt, dann die Größe diese Bildes ermittelt und dann ein entsrechend großes Browserfenster öffnen soll. Dies Funktioniert jedoch nur ab dem zweiten Aufruf der Seite. Es scheint mir ganz so, daß die Eigenschaften .width und .height des image objektes nur dann sinnvolle Werte ergeben, wenn das Image entweder auf der Seite selbst vorhanden ist, oder zumindest im cache liegt. Kann mir einer dazu genaueres sagen, bzw. weiß jemand Rat.

    Vielen Dank, kai.

    »»

    function openwin(myimage)
       {mynew = new Image();
        mynew.src = myimage;
        mystring = "toolbar=0,locationbar=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width="+mynew.width+",height="+mynew.height;
    x = window.open("","",mystring);
    x.document.open();
    x.document.write('<html><head></head><body><img ... </body></html>');
    }

    Also, ich mal was ähnliches gebaut. Funktionierte aber etwas anders.

    Ich öffne ein neues fenster mit der option resizable=1 und lade da das Bild rein,
    dann mess ich das bild aus und vergroesser das fenster entsprechend.

    function neues_fenster(bildurl){
    neu=open("","neu","resizable=1,width=10,height=10");
    neu.document.open("text/html");
    neu.document.write("<html><img src="+bildurl+" name='bild1'></html>");
    neu.document.close();
    neu.resizeTo(neu.document.images[0].width,neu.document.images[0].height);
    }