webForumDet fria alternativet

Resizea popupfönster

11 svar · 438 visningar · startad av bassebhu

bassebhuMedlem sedan nov. 20014 028 inlägg
#1

Hej!

Just nu kör jag ett phpscript som hämtar en bildurl från databasen, om bilden finns så körs getimagesize och jag får fram hur stor bilden är. Nu skulle jag även vilja anpassa popupen till bildens storlek...

Men först i efterhand! Detta för att det är så krävande laddningsmässigt att kolla om alla bilder finns och hämta bildstorlek för varje på min bildsida...

Jag vill alltså först i popupen anpassa fönstrets storlek. Går det? Är det funktionellt i så fall? Hur gör man? :)

Tack!

Peter SMedlem sedan dec. 20025 484 inlägg
#2

Hejsan!

Placera:

window.resizeTo([b]bredd[/b], [b]höjd[/b]);

på lämpligt ställe; onload="..." t ex.

:)

bassebhuMedlem sedan nov. 20014 028 inlägg
#3

Yeah, vad enkelt. Verkar funka också. MEN om jag anger att popupen ska vara 300 x 150 när den öppnas så blir den inte samma storlek efter att jag kört resize på samma värden, 300 x 150. Varför?

JojoxxMedlem sedan juni 20004 306 inlägg
#4

Därför att egenskapen du anger för window.open är fönstrets innermått medans window.resizeTo använder yttermått. Skillnaden är alltså fönsterramens & verktygsfältens bredd/höjd.

bassebhuMedlem sedan nov. 20014 028 inlägg
#5

Jojoxx skrev:

Därför att egenskapen du anger för window.open är fönstrets innermått medans window.resizeTo använder yttermått. Skillnaden är alltså fönsterramens & verktygsfältens bredd/höjd.

åhh vad kul :( d v s omöjligt att få lika på mac / pc.

men bättre än inget alls :)

Erik JuhlinMedlem sedan maj 20007 625 inlägg
#6

Tänk på att i Mozilla så kan man stänga av så att sidor inte kan ändra storleken på webbläsarfönstret. Lämpligast är väl att i window.open säga hur stort fönstret ska vara. Kanske kan du lagra bildstorleken i en databas?

bassebhuMedlem sedan nov. 20014 028 inlägg
#7

Erik Juhlin skrev:

Tänk på att i Mozilla så kan man stänga av så att sidor inte kan ändra storleken på webbläsarfönstret. Lämpligast är väl att i window.open säga hur stort fönstret ska vara. Kanske kan du lagra bildstorleken i en databas?

Mycket intressant tanke. men det blir för mycket att lagra/hämta i längden tror jag. vill ha überfortighet :)

Nu har jag en till fundering. Hur får jag mitt popupfönster att hamna centrerat? Går det också att fixa i efterhand? Eftersom jag inte vet hur stort fönstret kommer att bli :OO

Och sista saken, hur får jag så att scrollern visas om jag använder denna kod:

onclick="javascript:window.open('infoImg.php','infoImg', 'width=500,height=300');return false;"

Nu visas bara scrollern i IE på mac, men ingen annan läsare jag testat... ska in nåt i denna klump tro 'width=500,height=300' ?

bassebhuMedlem sedan nov. 20014 028 inlägg
#8

tips? :)

Peter SMedlem sedan dec. 20025 484 inlägg
#9

Antag att du har sparat bredden respektive höjden på ditt fönster i variabler width och height. Då

var width  = 500,
    height = 300;
var win = window.open("infoImg.php","infoImg", "width="+  width +",height="+ height +",[b]left="+ ((window.screen.availWidth - width) / 2) +",top="+  ((window.screen.availHeight - height) / 2)+",scrollbars[/b]");

Om du öppnar fönstret enligt ditt exempel:

onclick="window.open('infoImg.php','infoImg','[b]width=500,height=300,left='+ ((window.screen.availWidth - 500) / 2) +',top='+ ((window.screen.availHeight - 300) / 2) +',scrollbars[/b]'); return false"

Alternativt kan du skapa en referens till fönstret, var win = window.open(...), och sedan:

win.moveTo((window.screen.availWidth - [b]width[/b]) / 2, (window.screen.availHeight - [b]height[/b]) / 2);
bassebhuMedlem sedan nov. 20014 028 inlägg
#10

ok. det går alltså inte att centrera fönstret i efterhand?

men tack för scriptet. jag vet alltså inte fönstrets bredd och höjd i förväg...
:) tack.

Peter SMedlem sedan dec. 20025 484 inlägg
#11

I samma veva som du anger fönstrets dimensioner använder du det sista exemplet ovan. Om du anger bredd och höjd i popupfönstret använder du window.moveTo(...) i samma fönster (där window i detta fall alltså är referensen).

:)

bassebhuMedlem sedan nov. 20014 028 inlägg
#12

hehe kom precis på det :) tack för all hjälp :)

Om någon vill ha samma funktion... (i samarbete med min php-kod):

<body onLoad="window.resizeTo(<?=($width)?>, <?=($height)?>);window.moveTo((window.screen.availWidth - <?=($width)?>) / 2, (window.screen.availHeight - <?=($height)?>) / 2);" scroll="no">
127 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
125 ms — hämta tråd, inlägg och bilagor (db)