[Js] Windows Resize wird nur einmal ausgeführt

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Ich habe eine kleine Galerie programmiert in dem ich bei einem klick auf die Thumbnails ein neues Fenster öffnen lasse. Wenn das Fenster geöffnet ist wird das Fenster auf die Grösse des Bildes angepasst. Auf der Seite befinden sich nun auch ein vor und zurück button mit denen man die Bilder durchschalten kann. Mein Problem ist nun aber das ich wenn ich durchschalte das die Resize Funktion nicht mehr ausgeführt wird. Das heisst also das wenn das 1. Bild 100x100 war ist das Fenster dann 175*150 da noch jeweils ein Paar Pixel hinzugefügt werden damit unten die Buttons hinpassen. Beim klick auf weiter sollte dann aber die funktion erneut ausgeführt werden so das das Fenster auf die Größe des neuen Bildes angepasst wird. Kann mir da jemand sagen wie ich die funktion erneut ausführen lassen kann?

Code:
	<script type="text/javascript">
	<!--
	mW=75;//Zusätzliche Breite
	mH=50;//Zusätzliche Hoehe
	function winResize()
	{
	var wH=dH=wW=dW=0;
	IE=(document.all&&!window.opera);
	if(IE)
	{
	wW=document.body.offsetWidth;
	wH=document.body.offsetHeight;
	//document.body.scroll='no';
	}
	else
	{
	wW=window.innerWidth;
	wH=window.innerHeight;
	}
	i0=document.bild;
	dW=i0.width+mW;
	dH=i0.height+mH;
	diffW=dW-wW;
	diffH=dH-wH;
	window.resizeBy(diffW,diffH);
	}
	window.onload=winResize;
	//-->
	</script>

<img src="".$bildpfad."" name="bild" alt="">

Hier ist nun nur die Funktion aufgeführt damit ihr seht wie diese Funktioniert.

Vielen Dank für die Hilfe
 
hm ist ja super das du mir das sagst das es NICHT geht ;) aber das weiss ich ja :> wollte eigentlich wissen wie ich es mache das es geht?!?!
Gibt es sowas wie on reload oder so?
 
Hallo quicksilver,

wenn Du die Seite neu lädst kannst du die Funktion ja ganz simpel am Ende in einem eigenen Script-Tag aufrufen. Ansonsten kannst du es ja mit document.onload probieren, wobei ich nciht weiß, ob das wirklich funktioniert. :)


Ciao
 
Hm naja also mit dem Script unten erneut laden hatte ich schon probiert. :(

habe nun am Fuß der Seite Folgendes eingebaut:


Code:
	<script type=\"text/javascript\">
	<!--
	document.onload = winResize;
	//-->
	</script>

hat aber leider auch nichts gebracht :(
 
Zuletzt bearbeitet:
Hallo,

hab ja gesagt, bin mir nicht sicher ob das funktioniert. ;)

So sollte es allerdings funktionieren.

PHP:
<script type="text/javascript">
	winResize();
</script>

Im Zweifelsfall würde ich es noch zeitgesteuert etwas später aufrufen also so:
PHP:
<script type="text/javascript">
	window.setTimeout('winResize();', 150);
</script>

150 ms sollten eigentlich reichen. Das ist nur für den IE nötig, da dieser erst den Body fertig rendern muss.


Ciao
 
Aber die Seite wird doch neu geladen oder?

Hau doch mal testweise nen Alert in die Funktion um zu prüfen, ob sie aufgerufen wird. Dann ist dein Problem nämlich nicht der Aufruf, sondern die Berechnungsfunktionalität.

EDIT: Ahhh, ich hab mir gerade ne Code angeschaut. Wenn Du auf weiter beim nächsten Bild klickst, ist die Javascript-Funktion gar nicht mehr vorhanden. Das ist dein Problem. Lager die Funktion halt aus in deine scripte.js. Dann wird es auch funktionieren. Hättest Du Dir den genereirten Code angesehen, hättest Du dein Problem auch sofort gefunden, zumal der FF in der Javascript-Konsole meldet, dass die funktion nicht definiert ist.


Ciao
 
Zuletzt bearbeitet:
bin Js technisch leider nicht sonderlich gut. Wie mache ich das mit dem Alert?

Aber das sie aufgerufen wird zeigt doch der js fehler. Weil wenn ich den Part unten mit dem Timeout rausnehme kommt kein Fehler mehr.
 
Mit meinem Comment wollte ich Dir mitteilen, das die Seite nur einmal geladen wird und dann nur noch der Inhalt... Bastel Dein Resize doch beim Bildaufruf mitrein...
 
Zurück
Oben