Problem mit PopUpScript

G

GreenThunder

Hallo,

ich hab hier ein Popupscript mit dem ich von einer anderem Script erstellte Bilder öffnen möchte. Dabei soll die neue Fenstergröße dem Bild angepasst werden, aber irgendwie bekomme ich das nicht hin. Kann mir jemand helfen? Wäre nett.

PHP:
<script language='JavaScript' type='text/JavaScript'>
	var img;
function popupImg(imgname) {
	img = new Image();
	img.src = imgname;
	setTimeout("traceSize()", 20);
}
function traceSize() {
	if (img.width > 0) {
		win = open("", "POPUP", "height="+img.height+", width="+img.width);
		win.document.open();
		with(win.document) {
			write('<html><head><title>POPUP</title></head>');
			write('<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">');
			write('<img name="img1" id="image" src="' + img.src + '" width="' + img.width + '" height="' + img.height + '" alt="">');
			write('</body></html>');
		}
		win.document.close();
	} else {
		setTimeout("traceSize()", 20);
	}
}
	</script>
 
was genau funktioniert denn nicht....bei mir funktioniert das eigentlich.

Was nicht ganz hinhaut, sind die Abmaße des Fensters... da bei open() die Aussenmaße des Fensters bestimmt werden, da kommen dann aber noch die diversen Bedienelemente des Fensters dazu.
 
Sven Mintel hat gesagt.:
was genau funktioniert denn nicht....bei mir funktioniert das eigentlich.

Was nicht ganz hinhaut, sind die Abmaße des Fensters... da bei open() die Aussenmaße des Fensters bestimmt werden, da kommen dann aber noch die diversen Bedienelemente des Fensters dazu.

Bei dir funktioniert das? Hab erst dran gedacht es liegt daran, dass da ein paar " statt ' drin sind, aber wenn ich das ändere, dann sehe ich zwar alles, aber die Popups öffnen sich nicht.
 
Oh..sorry, habs natürlich lokal probiert und da ging es....weil mein Popupblocker dort aus ist.

Das Öffnen des Fensters wird von Popupblockern verhindert, weil es nicht direkt auf den Klick erfolgt, sondern erst durch die verzögert aufgerufene Funktion.

Lösung: anstatt das Popup später zu öffnen, könntest du es sofort öffnen, und sobald du die Abmaße des Bildes hast, seine Grösse ändern.
Das Ändern der Grösse per JS kann man in den meisten Browsern allerdings auch verhindern :(

Noch ne Variante:
Sobald die Seite fertiggeladen ist, könntest du alle betreffenden Bilder per JS vorladen, dann hättest du ihre Grösse bereits vorher verfügbar... Leute mit langsamer Verbindung werden das aber nicht mögen.

Letzte Variante: falls du eine serverseitige Sprache verfügbar hast, könntest du damit vorher die Bildgrösse auslesen und das gleich im Funktionsaufruf übergeben.
 

Neue Beiträge

Zurück