JS window.open onload safari problem

ph!l

Mitglied
Thread Starter
Mitglied seit
09.03.2006
Beiträge
117
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:

oDeM

Mitglied
Mitglied seit
15.08.2005
Beiträge
108
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
 

ph!l

Mitglied
Thread Starter
Mitglied seit
09.03.2006
Beiträge
117
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..