Javascript: Hur stänga en popup om den existerar och sedan öppna den igen?

Permalänk
Medlem

Javascript: Hur stänga en popup om den existerar och sedan öppna den igen?

Jag använder popup-fönster för att visa bilder från ett bildgalleri. Jag vill att varje gång man klickar på en thumbnail så ska popup-fönstrets storlek anpassas till storleken på den bild som ska visas. En bild på 800x600 ska alltså fylla hela popupen och likaså om jag därefter klickar upp en bild som är t.ex 1024x768.

Saken är att det funkar klockrent på första bilden jag väljer att visa, men efter detta bibehåller popup-fönstret hela tiden den storlek det antog första gången. Jag har försökt göra så att popup-fönstret stängs om det är öppet och sedan öppnas direkt med ny storlek, på diverse olika vis men ej lyckats.

Nedan syns senaste försöket. Allt funkar alltså utom att storleken på popupen anpassas efter senaste bilden.

var photoWindow = ''; function photoOpen(link, width, height) { if (photoWindow.closed) { photoWindow=window.open(link,"photo",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width='+width+',height='+height); } else { photoWindow.close; photoWindow=window.open(link,"photo",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width='+width+',height='+height); } if (window.focus) {photoWindow.focus()} }

Vad gör jag fel? Kan man göra på ett helt annat sätt för att uppnå det jag vill? Tacksam för hjälp.

Permalänk
Medlem

om det rör sig om att visa bildfiler så funkar detta bra. funkar dock inte om det är html-dokument du viill ska visas i popupen.

var win = null; function NewWindow(url, w, h) { if (win != null && !win.closed){ win.resizeTo(w,h); writeBody(url); win.focus(); } else { win = window.open(url,"photo","width=" + w + ",height=" + h + ",left=0,top=0,scrollbars=yes,resizable=yes"); writeBody(url); } } function writeBody(src) { win.document.open("text/html"); win.document.write("<a href='#' onclick='self.close()'><img src='" + src+ "' border='0' alt='" + src + "' /></a>"); win.document.close(); } //kan anropas i htmlkod tex <a href="Javascript:NewWindow('bild.jpg',120,120);">Min bild</a>

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Pucka
om det rör sig om att visa bildfiler så funkar detta bra. funkar dock inte om det är html-dokument

Jag var lite otydlig där. Som min lösning ser ut just nu så är det just html-dokument (eller snarare en php-sida) jag laddar i popupfönstret. Ska fundera på om jag kan ändra på det iofs, men det borde väl gå att lösa ändå eller? Tack ändå, vi får se om jag ändrar på mitt upplägg eller om fler svar kommer.

Edit: Jag löste det hela på helt annat vis med lite fulhack. På den sida som poppar upp har jag en snutt javascript som ändrar storlek på bilden till en storlek anpassad för bilden som ska visas upp. Storleken hämtar jag med en php-funktion så det är ingen ren lösning direkt. Kanske inte så snyggt men det gör jobbet iaf

<?PHP $photo_size = getimagesize("$photo"); ?> <script language="JavaScript"> <!-- <?PHP print 'window.resizeTo(' . $photo_size[0] . ',' . $photo_size[1] . ')'; ?> -->

</script>