Archivlink: javarea.de Forum > JavaScript > Fenstergröße bei window.open in IE und Mozilla
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Fenstergröße bei window.open in IE und Mozilla

Pages: [1]

geschrieben von Boettgerie am 05.11.2006 - 09:41
Hallo !

Ich habe ein Problem mit window.open und dem IE 6.0.

Mein JavaScript-Tag ist folgende:

function popUpImg(img) {
myImg = new Image();
myImg.src = img;
var width = myImg.width;
var height = myImg.height;
imgWin = window.open("", "imgWinName", "width=" + width + ", height=" + height);

with (imgWin.document) {
open();
write('<html>');
write(' <head>');
write(' <title>Peter Henlein - ImageView</title>');
write(' </head>');
write(' <body style="margin: 0px;" onLoad="self.focus();">');
write(' <a href="" onClick="javascript:self.close()">')
write(' <img src="' + img + '" alt="popUpImage" title="popUpImage" border="0"></a>');
write(' </body>');
write('</html>');
close();
}
}
</script>

Der Auruf dazu lautet z.B.:

<a href="javascript: popUpImg('./images/henlein/1.jpg')"><img src="./images/henlein/1.jpg" width="300"border="0"></a>

Also ein Bildverweis.

Mit diesem Code wird die Größe des Bildes dynamisch ermittelt und das PopUp mit der entsprechenden Größe dargestellt. Dies ist in beiden Browsern zunächst kein Problem, solange die Bildgröße die Darstellungsgröße des Bildschirmes nicht überschreitet. Ist das Bild z.B. höher als die Höhe der Bildschirmauflösung, dann fügt Mozilla nur am rechten Rand des PopUps eine Scrollbar ein. InternetExplorer stellt das PopUp in der Höhe der Bildschirmhöhe dar, fügt aber keine Scrollbar ein. Wird unter "window.open" eine Scrollbar hinzugefügt, so reagiert Mozilla wie gehabt, nur der IE fügt jetzt grundsätzlich beide Scrollbars (horizontal und vertikal) ein.

Gibt es eine Möglichkeit, dies so zu realisieren, dass es auf beiden Browsern funktioniert ?

Danke schonmal !

Ciao,

Heiko

geschrieben von weisnix am 05.11.2006 - 14:14
Hier der Script mit den Erweiterungen:

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
<script>
function popUpImg(img,titel) {

myImg = new Image();
myImg.src = img;
var width = myImg.width;
var height = myImg.height;
var text= titel;

if (myImg.height == window.innerHeight) {

    scroll_bar = "no";
  } else {

    scroll_bar = "yes";
  }
if (myImg.width == window.width) {

    scroll_bar = "no";
  } else {

    scroll_bar = "yes";
  }
  
imgWin = window.open("", "imgWinName", "width=" + width + ", height=" + height+",scrollbars="+scroll_bar);

with (imgWin.document) {
open();

write('<html>');
write(' <head>');
write(' <title>Peter Henlein - ImageView '+text+'</title>');
write(' </head>');
write(' <body style="margin: 0px;" onLoad="self.focus();">');
write(' <a href="" onClick="javascript:self.close()">')
write(' <img src="' + img + '" width="'+myImg.width+'" height ="'+myImg.height+'" alt="popUpImage" title="'+text+'" border="0"></a>');
write(' </body>');
write('</html>');
close();
}
}
</script>

<img style="cursor: pointer;border:0px;" src="./images/henlein/1.jpg" title="meinBild1" width="300" onclick="popUpImg(this.src,this.title);">


die Bilder würde ich mit onclick im PopUp öffnen. Spart eine menge Code zum schreiben.

Wenn du Frage hier zu hast, dann melde dich.

Gruß Kathrin

geschrieben von René am 05.11.2006 - 15:43
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
function popUpImg(img)
{
	myImg      = new Image();
	myImg.src  = img;
	var width  = myImg.width;
	var height = myImg.height;

	var imgWin = window.open('','imgWinName','width=' + width + ',height=' + height);

	with (imgWin.document)
	{
		open();

		write('<html>');
		write(' <head>');
		write(' <title>Peter Henlein - ImageView</title>');
		write(' </head>');
		write(' <body style="overflow: auto; margin: 0px;" onload="self.focus();">');
		write(' <a href="javascript:top.close();">')
		write(' <img src="' + img + '" border="0" alt="popUpImage" title="popUpImage"></a>');
		write(' </body>');
		write('</html>');

		close();
	}
}

geschrieben von weisnix am 05.11.2006 - 17:34
Hallo René,

das wäre schön wenn das so einfach geht.

geschrieben von Boettgerie am 06.11.2006 - 23:07
Danke für die Tips, aber die funktionieren leider alle beim Internet Explorer nicht. Hat vielleicht noch jemand eine Idee, wie es klappen könnte ?

Danke !

Heiko

geschrieben von weisnix am 07.11.2006 - 07:16
Da ich meine Script ja als kompletten Code gepostet habe, wurde der auch getestet.

Betriebssystem WinXP

Und zwar mit den IE 6 und mit dem FF 1.5.

Der Opera 7.23 funktioniert auch, nur gibt es da noch Seitenränder.

Selbst der NC 7.1 gibt eine Scrolleiste aus. Allerdings bei meinem Testbild nur eine horizontale.

Der IE 7 wird noch nicht getestet, da er sich ja noch selbst testet.

( Never change a running system! )

geschrieben von Boettgerie am 07.11.2006 - 18:12
Habe das Script nochmal mit dem IE 6 getestet. Bei meinem Bild hatte ich jetzt rechts einen Scrollbalken, der das Bild aber nur um ein paar Pixel verschoben hat. Ich habe besagte Bild mal beigefügt. Es funktioniert weder auf meinem Notebook: XP Home, IE 6 SP2, Auflösung 1440x900, noch auf einem Arbeitsplatzrechner: WINNT, IE 6 SP2, 1024x768 oder mit WINDOWS 2000. Mozilla funktioniert bei mir einwandfrei.
Ein anderer Effekt: ist das Bild kleiner z.B. 640x679 so habe ich unten und rechts einen weissen Rand.
Wie gesagt, bei Mozilla TOP !
Vielleicht könntest Du Dein Script mal bei Dir mit meinem Bild testen.

Danke !

Gruß

Heiko

P.S.: Sorry, Bild ist zu groß kann ich Dir das anders zukommen lassen ? Ist leider über 120KB.


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.