15. april 2004 - 14:27Der er
10 kommentarer og 1 løsning
Finde vinduets left/top koordinater + width/height
Jeg forsøger at lave et popup-vindue, der placerer sig i nederste venstre hjørne i forhold til det vindue, som oprettede popup-vinduet.
Følgende er lidt pseudokode, da nogle af attributterne ikke findes, men jeg forestiller mig at dette skal ske i onload event'en på popup vinduet: --------------------------------------- popupHeight = window.height;
window.moveTo(popupLeft, popupTop); --------------------------------------- Mit problem ligger her i at finde de 4 koordinater: left, top, width, height for vinduerne. Efter at have bladret rundt i diverse javascript-referencer, kan jeg ikke komme på nogen løsning.
Men måske er der én herinde, som lige ved, hvad der skal til?
1) Jeg skal ikke have nogen vinduer maksimeret 2) Nederste VENSTRE hjørne er (0, screen.availHeight). Men det skal jeg ikke bruge - jeg skal bruge følgende:
Hov det kom ikke til at se så pænt ud, men prøv at copy/paste det ind i en tekst-editor...
rubbersoul -> Dine eksempler virker desværre ikke fordi:
1) window.outerWidth og window.outerHeight er "undefined" 2) Vinduet skal IKKE placeres i forhold til skærmens hjørner, men i forhold til det ÅBNENDE vindues hjørner.
Synes godt om
Slettet bruger
15. april 2004 - 15:21#8
Arh, ok - det havde jeg misforstået - beklager! Men kan du ikke gøre det fra hovedsiden når du popper pop-up'en op - på det tidspunkt kender du jo alle variable...
if (isIE) { var posLeft = window.screenLeft; var posTop = (window.screenTop+document.body.clientHeight)-(popupHeight+2); } else { var posLeft = window.window.screenX; var posTop = (window.screenY+window.outerHeight)-(popupHeight+32); }
pop = window.open('pling.html', 'popWin', 'width='+popupWidth+',height='+popupHeight+',left='+posLeft+',top='+posTop+',scrollbars=1,resizable'); pop.focus(); //--> </script>
Grr... jeg kan ikke få det til at virke..... Men det er måske også for jeg "vender det lidt på hovedet".
Jeg laver alle beregninger og flytning i popup-vinduet istedet for i hovedvinduet. Og det gør jeg selvfølgelig af en grund: Popup vinduet viser et billede, og skal derefter resizes så det er tilpasset billedets dimensioner. Det har jeg ingen problemer med, det fungerer fint.
Men det betyder så også desværre, at placeringen - eller rettere flytningen - af popup vinduet skal ske i popup-vinduets kode. Dvs. Lars' eksempel bliver til:
<script language="JavaScript" type="text/javascript"> <!-- .... her sker først noget beregning af vinduets størrelse på baggrund af billedet ... window.resize(popupWidth, popupHeight);
var agent = navigator.userAgent.toLowerCase(); var isIE = ((agent.indexOf("msie") != -1) && (agent.indexOf("opera") == -1) && (agent.indexOf("webtv") == -1)); var isGecko = (agent.indexOf("gecko") != -1 && agent.indexOf("safari") == -1);
if (isIE) { var posLeft = opener.screenLeft; var posTop = (opener.screenTop+opener.document.body.clientHeight)-(popupHeight+2); } else { var posLeft = opener.screenX; var posTop = (opener.screenY+opener.outerHeight)-(popupHeight+32); }
Hvor "window" erstattes af "opener" og "document.body..." bliver til "opener.document.body...".
MEN vinduet placerer sig ikke det rigtige sted. Det er som om, at Explorer (jeg kører IE 6.0) ikke finder de rigtige koordinater for "opener".
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.