popup fenster bild größe anpassen
superfly
- javascript
hallo!
ich hätte da ein problem und komm nach stundenlangen herum suchen zu keiner lösung vielleicht könnt ihr mir helfen. so hier mal das script -> es soll ein popup fenster aufgehn das sich an die größe des bildes anpasst.
<a href = "JavaScript:fenster('http://www.foo.com/images/foo.jpg')">
öffne popup
</a>
function fenster(pic)
{
var img = new Image();
img.src = pic;
wsize = img.width+20;
hsize = img.height+20;
var win;
win=window.open(pic,'','height='+hsize+',width='+wsize+'left=50,top=50,scrollbars=no,toolbar=no,resizable=yes');
}
das ganze funkt ja ohne probleme allerdings nur im IE(!) im mozilla bleibt das popup auf der größe von 20x20 pixel :(
bin dankbar über jeden lösungsvorschlag!!
bye
superfly
Hallo, superfly,
ich hätte da ein problem und komm nach stundenlangen herum suchen zu keiner lösung vielleicht könnt ihr mir helfen. so hier mal das script -> es soll ein popup fenster aufgehn das sich an die größe des bildes anpasst.
<a href = "JavaScript:fenster('http://www.foo.com/images/foo.jpg')">öffne popup</a>
Bitte lies http://home.t-online.de/home/dj5nu/js-popup.html. Es sollte besser lauten:
<a href="http://www.foo.com/images/foo.jpg" onclick="fenster(this.href); return false">öffne popup</a>
win=window.open(pic,'','height='+hsize+',width='+wsize+'left=50,top=50,scrollbars=no,toolbar=no,resizable=yes');
Bitte gebe einen sinnvollen zweiten Parameter an, siehe http://selfhtml.teamone.de/javascript/objekte/window.htm#open.
das ganze funkt ja ohne probleme allerdings nur im IE(!) im mozilla bleibt das popup auf der größe von 20x20 pixel :(
bin dankbar über jeden lösungsvorschlag!!
Sobald du dem Image-Objekt über die Eigenschaft src eine Ressource zuweist, wird diese vermutlich im Hintergrund ausgeführt. Bei dem darauffolgenden Befehl, welcher vermutlich noch vor Ende des HTTP-GETs und vor dem Laden der Grafik in den Speicher ausgeführt wird, steht folglich das width- beziehungsweise height-Attribut noch nicht zur Verfügung - somit wird das Fenster logischerweise mit falschen Werten geöffnet.
Eine Lösung wäre, durch eine Schleife das Script solange anzuhalten (nichts tun zu lassen), bis complete http://selfhtml.teamone.de/javascript/objekte/images.htm#complete wahr ist. Eine andere Lösung wäre, serverseitig die Bildgröße auszulesen, beispielsweise in PHP über getimagesize(), siehe http://de.php.net/manual/de/function.getimagesize.php, eine Beispiellösung habe ich in http://home.t-online.de/home/dj5nu/fanhost/js-popup-galerie.html skizziert. Übrigens solltest du im Popup-Fenster ein vollständiges HTML-Dokument öffnen, da du sonst mit 20 Pixeln Rand falsch liegen könntest.
Grüße,
Mathias
hallo!
ich hätte da ein problem und komm nach stundenlangen herum suchen zu keiner lösung vielleicht könnt ihr mir helfen. so hier mal das script -> es soll ein popup fenster aufgehn das sich an die größe des bildes anpasst.
Nimm das, es funktioniert sogar ohne Javascript: http://home.arcor.de/struebig/js/popup/popup_3.htm
Struppi.
Hallo, Struppi,
Hm, sehr interessant. Komischerweise funktioniert es nicht wie gewollt:
K-Meleon 0.7 (ohne JavaScript-Limitierungen - mit selbigen funktioniert natürlich nicht viel):
<img src="http://home.t-online.de/home/dj5nu/fanhost/popup-kmeleon.png" border="0" alt="">
MSIE 6SP1:
<img src="http://home.t-online.de/home/dj5nu/fanhost/popup-msie6.png" border="0" alt="">
Opera 6.05:
<img src="http://home.t-online.de/home/dj5nu/fanhost/popup-opera605.png" border="0" alt="">
Im Mozilla 1.3a ohne JavaScript-Einschränkungen und Opera 7b2 funktioniert es hingegen wie erwartet.
Grüße,
Mathias
Hallo, Struppi,
Hm, sehr interessant. Komischerweise funktioniert es nicht wie gewollt:
Jaja, das jeder Browser sein eigenes Süppchen kocht, was die Fenstergrößen angeht ist manchmal sehr hinderlich.
K-Meleon 0.7 (ohne JavaScript-Limitierungen - mit selbigen funktioniert natürlich nicht viel):
Hat ich eigentlich auch geguckt mit, seltsam, muss ich zu Hause nochmal testen.
MSIE 6SP1:
Danke, hab ich nicht, im IE 4.0 funktioniert es.
Opera 6.05:
Ich hatte extra eine Anpassung an Opera 6 geschrieben und bei mir klappte es, auch seltsam.
Im Mozilla 1.3a ohne JavaScript-Einschränkungen und Opera 7b2 funktioniert es hingegen wie erwartet.
In NC 4.x ebenfalls.
Das Problem steckt hier:
var width = w.innerWidth ? w.innerWidth : w.document.body.offsetWidth;
var height = w.innerHeight ? w.innerHeight : w.document.body.offsetHeight;
w.resizeBy(i.width - width + rahmen_w, i.height - height + rahmen_h);
i ist das Bild und w das window. Vielleicht stecken da noch Verbesserungen drin, werd mich mal dahinter setzten.
Danke, auf jeden Fall für deine Mühen :-)
Struppi.
hallo!
ich hätte da ein problem und komm nach stundenlangen herum suchen zu keiner lösung vielleicht könnt ihr mir helfen. so hier mal das script -> es soll ein popup fenster aufgehn das sich an die größe des bildes anpasst.<a href = "JavaScript:fenster('http://www.foo.com/images/foo.jpg')">
öffne popup
</a>function fenster(pic)
{
var img = new Image();
img.src = pic;
wsize = img.width+20;
hsize = img.height+20;
var win;
win=window.open(pic,'','height='+hsize+',width='+wsize+'left=50,top=50,scrollbars=no,toolbar=no,resizable=yes');
}das ganze funkt ja ohne probleme allerdings nur im IE(!) im mozilla bleibt das popup auf der größe von 20x20 pixel :(
bin dankbar über jeden lösungsvorschlag!!
bye
superfly
VIELEN DANKE FÜR DIE HILFE !!