ugrás a tartalomhoz

Iframe-ben megnyitott Lightbox töltse be a teljes képernyőt

dardos · 2008. Jún. 7. (Szo), 16.24
Hello!

Komoly problémám van. Találtama neten egy jó kis képnézegetőt (), de a lightbox.js fájlban nem tudom átírni a felugró ablak méreteit.

A probléma az, hogy az én oldalam felépítése olyan, hogy az index.html-ben van egy 200x200-as iframe, amibe be van töltve a galéria oldal, és ugyebár ezt az egész képnézegetőt abba kell betölteni, így ha rákattintok a galériában az egyik kiskép-linkre, akkor csak az iframe-ben bontakozik ki a lényeg, de nekem az kellene, hogy az egész képernyőt betöltse, vagyis az index.html méreteit vegye figyelembe, amikor lefut a script.

Itt van a részlet, ami szerintem erre vonatkozik, de ha ne jól gondoltam, légyszi nézzétek meg a belinkelt oldalon az egész scriptet!
getPageSize: function() {
	        
	     var xScroll, yScroll;
		
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		
		var windowWidth, windowHeight;
		
		if (self.innerHeight) {	// all except Explorer
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth; 
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		
		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}
	
		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){	
			pageWidth = xScroll;		
		} else {
			pageWidth = windowWidth;
		}

		return [pageWidth,pageHeight];
	}


Gondolom, valami parent-et kell berakni valahova, csak nem tudom, hogyan kell.

Előre is köszönöm!
 
1

kimaradt link

dardos · 2008. Jún. 7. (Szo), 16.27
Bocs, a link kimaradt, ahonnan leszedtem: http://www.lokeshdhakar.com/projects/lightbox2/
2

Iframe mérete a korlát

Török Gábor · 2008. Jún. 7. (Szo), 18.12
Az iframe-ben megjelentetett (Lightbox) réteg vizuálisan legfeljebb akkora lehet, amekkora az iframe.
3

Megoldás?

mortuus · 2008. Júl. 11. (P), 11.28
Szia
Sikerült megoldanod a problémát? Engem is érdekelne, mert pont egy hasonlóval küszködök!
köszi
4

naiv ;)

rudo · 2008. Júl. 12. (Szo), 08.37
ne haragudj, de úgy érzem kicsit naiv a megközelítésed. az iframe egy teljesen külön, komplett dokumentum, úgy képzeld el, mintha egy teljesen külön ablak volna (merthogy végső soron az is). minden ami benne történik az rá vonatkozik, ami a befoglaló méreten kívül történik az pont olyan, mintha egy 1024*768 felbontású monitoron szeretnél egy 2000*2000 pixel felbontású képet megnézni. ilyenkor az elvárt működés az, hogy megjelennek a scrollbarok, vagy levágódik a kép széle. az nem szokott előfordulni, hogy a monitor mellett a levegőben jelenik meg, ami nem fér ki;)

de a naivat nem ezért irtam! ugyanis elméletben rá lehetne venni a programot, hogy azt csinálja, amit te szeretnél és a megoldásban valóban jó eséllyel szerepelne a parent szó... viszont igy elsőre nekem úgy tűnik, hogy ez annyira bonyolult dolog volna, hogy épeszű ember nem lát hozzá... és úgy itélem meg, te sem tudnád megcsinálni.

sztem, ha ragaszkodsz a lightboxhoz, és energiát akarsz befektetni, akkor az iframe kiváltásán kéne elgondolkodni! miért van rá szükség? inkább itt keressük a megoldást, hagy ne kelljen megnézznünk a lightbox2 scriptjét :D
5

window.top

janoszen · 2008. Júl. 12. (Szo), 08.58
Hali,

a szomorú helyzet az, hogy egy kicsit fejlesztened kell hozzá. Át kell írnod a lightboxot úgy, hogy a HTML feldolgozó része az iframen belül fusson, viszont az onclick event ne az iframe függvényét hívja, hanem a window.top. stb megfelelő függvényébe rugjon bele. Egyébként nem tudom, miért kényszerülsz iframe használatára (nekem is volt már szükségem rá) de arra számíts, hogy nem lesz egyszerű eset.

J
6

Szerintem se használj iframe-t.

dadikovi · 2008. Júl. 15. (K), 18.51
Oldd meg mással. Én nekem egyszer egy olyanom volt, hogy kis fülecskés rendszer, és értelmetlen volt az egész oldalt megcsinálni egy kis 100x50-es részhez. Aztán most azt is táblázattal csinálom meg. Hidd el; jobb.
7

Nem biztos.

janoszen · 2008. Júl. 15. (K), 19.12
Lehetnek helyzetek, amikor szükséged van iframere, pl amikor AJAX style fájlfeltöltést szeretnél csinálni, de nem hiszem, hogy a kérdező helyzete ilyesmi lenne. :)
8

ha nincs még megoldásod...

gaben · 2009. Feb. 11. (Sze), 12.52
ha nincs még megoldásod akkor nekem úgy oldódott meg, hogy ezt a szülődokumentumba tettem:
<link rel="stylesheet" href="lytebox.css" type="text/css" media="screen" />
ezt pedig az iframe dokumentumba:
<script type="text/javascript" language="javascript" src="lytebox.js"></script>

forrás
remélem tudtam segíteni!

üdv,

szerk:
erről a scriptről van szó:
Lytebox
majdnem ugyanaz mint amit te is linkeltél, de nekem ennél működik.