JS window.open onload safari problem

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von ph!l, 09.01.2007.

  1. ph!l

    ph!l Thread Starter MacUser Mitglied

    Beiträge:
    117
    Zustimmungen:
    2
    MacUser seit:
    09.03.2006
    hey,

    ich habe eine JS Funktion geschrieben der ein Bildname übergeben wird. Dann wird geschaut wie groß das BIld ist und ein Popup geöffnet, das eben nur so groß ist wie das Bild und es soll noch zentriert werden. Das wird aber nicht immer erfolgreich ausgeführt, da manchmal das Bild noch nicht richtig geladen ist und die BIldgröße so nicht vorhanden ist.

    Deshalb habe ich in das Popup noch eine Onload Funktion geschrieben, die dann nochmal die Größe des geladenen BIldes ausließt und dann das Fenster anpasst.

    Funktioniert im IE 6/7 und FF auch problemlos. Nur lässt der Safari das onload in dem Popup nicht zu... ich habe das onload auch schon auf ein img gelegt, hat aber leider nicht geholfen, hat jemand eine idee ?
    PHP:
    function popup(image){

        var 
    newImage = new Image();
        
    newImage.src "./img/"+image;
        
        
    width_image newImage.width 20;
        
    height_image newImage.height 20;
        
        var 
    screen_width screen.width;
        var 
    screen_height screen.height;

        var 
    pos_x = (screen_width/2)-(width_image/2);
        var 
    pos_y = (screen_height/2)- (height_image/2);
        
        
    newWindow window.open("","Großansicht","height="+height_image+",width="+width_image+",left="+pos_x+",top="+pos_y+"status=0");
        
        
    newWindow.document.open();
        
    newWindow.document.write('<html><head><script src="js/test.js" type="text/javascript"></script><title>Großansicht</title></head><body onload="checksize();" ><img src="img/'+image+'" style="padding10px;" alt="" name="pic" id="pic"></body></html>');
        
        
    newWindow.document.close();
        
    newWindow.focus();
        
    }

    function 
    checksize(){
        
        
        
    width_image document.getElementById('pic').width 20;
        
    height_image document.getElementById('pic').height 60;
        
        var 
    screen_width screen.width;
        var 
    screen_height screen.height;
        
        var 
    pos_x = (screen_width/2)-(width_image/2);
        var 
    pos_y = (screen_height/2)- (height_image/2);
        
        
    window.resizeTo(width_image,height_image);
        
    window.moveTo(pos_x,pos_y);
    }



    // edit nach post von oDeM
     
    Zuletzt bearbeitet: 09.01.2007
  2. oDeM

    oDeM MacUser Mitglied

    Beiträge:
    106
    Zustimmungen:
    0
    MacUser seit:
    15.08.2005
    Afaik ist laut HTML Spezifikation festgelegt, dass der onload Event-Handler nur im body und frameset-Tag ausgeführt wird.
    Wenn der IE das schluckt ok, der schluckt ja bekanntlich alles ;)
    Aber beim FF wunderts mich doch ein bisschen
     
  3. ph!l

    ph!l Thread Starter MacUser Mitglied

    Beiträge:
    117
    Zustimmungen:
    2
    MacUser seit:
    09.03.2006
    hey,

    war mein Fehler, ich habe es als erstes mit body onload probiert. Ich hatte es jetzt nur testweise auf img onload gelegt, dachte es hängt vielleicht mit einem Popup/werbeblocker zusammen..
     
Die Seite wird geladen...
Ähnliche Themen - window open onload
  1. eXcuvator
    Antworten:
    1
    Aufrufe:
    488
    staind
    11.01.2008
  2. Mondmann
    Antworten:
    37
    Aufrufe:
    3.224
    UDH5
    15.08.2007
  3. OneBit
    Antworten:
    5
    Aufrufe:
    523
    Jakob
    18.10.2006