Avatar billede Slettet bruger
13. juni 2007 - 19:00 Der er 7 kommentarer og
2 løsninger

Resize af popup med dynamisk indhold

Hej

Jeg har et script der resizer popup-vinduer.

Script til åbning af popup-vindue:
<script language="JavaScript" type="text/javascript"><!--
  function galleri(fileName) {
      myWin = window.open('','myWindow','scrollbars=no,directories=no,status=no,resizable=no,toolbar=no,copyhistory=no,location=no,menubar=no,width=625,height=350')
      myWin.location.href = fileName;
  }
//--></script>

Link til at aktivere ovenstående script:
<img style="cursor: hand;" class="image" border="0" src="billede1_thumb.jpg" alt="Billede 1" width="100" height="100" onclick="java script:galleri('galleri.php?pic=billede1.jpg')">

Den side der så åbnes har følgende resize-script:
<script language="JavaScript" type="text/javascript"><!--
  window.resizeTo(600, 500);
  window.focus();
</script>

Hvilket vinduestørrelse jeg resizer til, afgøres af php, der finder størrelsen på billedet.

Problemet er at jeg ikke har styr over popup-vinduet, altså de præcise mål med forskellige barer og hvad folk ellers kan have aktiveret.

Jeg har forsøgt at bruge window.open krydret med innerHeight og innerWidth, men det fungerer ikke i IE (så vidt jeg har kunnet finde ud af).

Mit ønske er at have et script der resizer et vindue efter indhold.

Er det muligt at stoppe indholdet i vinduet i et eller andet element (der tilpasser sig indholdet, f.eks. en tabel), for herefter at bruge javascript til at finde størrelsen på dette element for at kunne resize vinduet korrekt?
Avatar billede olebole Juniormester
14. juni 2007 - 15:15 #1
<ole>

function getWinDims() {
    var oRet = {};
    if (window.innerHeight) {
        oRet.w = window.innerWidth;
        oRet.h = window.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) {
        oRet.w = document.documentElement.clientWidth;
        oRet.h = document.documentElement.clientHeight;
    }
    else if (document.body) {
        oRet.w = document.body.clientWidth;
        oRet.h = document.body.clientHeight;
    }
    retur oRet;
}

var oDims = getWinDims();
alert(oDims.w);
alert(oDims.h);

/mvh
</bole>
Avatar billede olebole Juniormester
14. juni 2007 - 15:17 #2
Du kan også sende et window-objekt med i funktions kaldet (f.eks. et popup-vindue):

function getWinDims(oWin) {
    var oRet = {};
    if (oWin.innerHeight) {
        oRet.w = oWin.innerWidth;
        oRet.h = oWin.innerHeight;
    }
    else if (oWin.document.documentElement && oWin.document.documentElement.clientHeight) {
        oRet.w = oWin.document.documentElement.clientWidth;
        oRet.h = oWin.document.documentElement.clientHeight;
    }
    else if (oWin.document.body) {
        oRet.w = oWin.document.body.clientWidth;
        oRet.h = oWin.document.body.clientHeight;
    }
    retur oRet;
}
Avatar billede Slettet bruger
14. juni 2007 - 19:07 #3
Det ser interessant ud, men jeg er absolut ingen ørn til JS. Kan du hjælpe mig på sporet af hvor dine forslag skal bruges i min kode?
Avatar billede Slettet bruger
18. juni 2007 - 09:47 #4
Der er vist ved at være lukketid....

olebole...> Læg et svar og halvdelen af pointene er dine for deltagelse i tråden. Endte ikke ud med noget brugbart i forhold til mine sparsomme JS-evner ;o)
Avatar billede olebole Juniormester
18. juni 2007 - 10:36 #5
Jeg har ikke været på E de seneste dage, så derfor har jeg ikke svaret yderligere. Jeg ved jo ikke, hvad du vil lave og hvordan. Det script, jeg har skrevet, finder bredde og højde af et vindue (jvnf: "krydret med innerHeight og innerWidth, men det fungerer ikke i IE")
Avatar billede Slettet bruger
18. juni 2007 - 10:39 #6
Nej, det er nemlig mit problem.

Det jeg forsøger at finde/lave er et script til at vise billeder med.

Jeg har et billede i thumb-størrelse. Når man klikket på billedet skal der komme et popup-vindue der viser billedet. Problemer er at IE ikke kan skalere vinduet så det passer til vinduet, fordi der tilsyneladende ikke findes en måde at skalere et vindue i forhold til indholdet. IE kan kun skalere i forhold til de ydre rammer.

Det ender nok med at jeg bare bliver nødt til at lave noget tabel-halløj der centrerer billedet, og så lade popupvinduet være så stort at der med sikkerhed viser hele billedet, uanset hvilken browser det ses i.
Avatar billede michael_stim Ekspert
18. juni 2007 - 10:43 #7
roenving har et script på sin side.
http://roenving.users.whitehat.dk/
Avatar billede Slettet bruger
18. juni 2007 - 11:15 #8
michael_stim...> Scriptet har samme problem som nævnt ovenfor.
Avatar billede michael_stim Ekspert
18. juni 2007 - 11:18 #9
Sorry, var mig der ikke havde läst ordentligt.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester