Avatar billede kartolux Nybegynder
17. marts 2001 - 11:06 Der er 9 kommentarer og
1 løsning

Position på popup vindue

Jeg anvender denne kode til at åbne et popup vindue:

<SCRIPT language=Javascript>
<!--
    function pop_forside() {
        post = window.open(\"f.htm\", \"post\", \"width=325,height=300\");   
    }
//-->
</SCRIPT>

Er der en venlig sjæl, som vil tilpasse denne kode, så den åbner vinduet midt på skærmen?

Jeg har set det andre steder, men der er anvendt andre \"grundkoder\", og jeg vil ikke lave for meget om.
Avatar billede jakoba Nybegynder
17. marts 2001 - 11:19 #1
function pop_forside() {
  xpos = Math.round((screen.width-325)/2);
  ypos = math.round((screen.height-300)/2);
  if (navigator.appName!=\"Netscape\") {
    var pos = \",left=\"+xpos+\",top=\"+ypos
  } else {
    var pos = \",screenX=\"+xpos+\",screenY=\"+ypos
  };
  post = window.open( \"f.htm\", \"post\", \"width=325,height=300\" +pos ); 
};

mvh JakobA
Avatar billede jakoba Nybegynder
17. marts 2001 - 11:20 #2
ups:  Math skal også være med stort M i tredie linie.
Avatar billede kartolux Nybegynder
17. marts 2001 - 12:08 #3
Ikke en reel afvisning!!! Det fungerer fint! Kun et spørgsmål:

Jeg ser, at du anvender popup vinduets størrelse i scriptet. Nu vil jeg ofte skulle have forskellige popups på forskellige sider. Disse vil indeholde samme grundscript. Jeg indsætter blot vinduets størrelse de to steder.
Er der størrelser på popup vinduer, som vil kunne give problemer? Jeg mener - runder Mat.round af, hvis der er ulige antal pixels i vinduet?

mvh Lars
Avatar billede visionmagic Nybegynder
17. marts 2001 - 12:58 #4
Put dette script ind i din f.htlm:
Dette hopper til 50x50 *GG*

<script language=\"javascript\">
Move_WindowX = 50;
Move_WindowY = 50;
self.moveTo(Move_WindowX,Move_WindowY);
</script>

Avatar billede visionmagic Nybegynder
17. marts 2001 - 13:02 #5
Oups, havde ikke set det skulle centres. Det kommer her:

<script language=\"javascript\" type=\"text/javascript\">
<!--
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos==\"random\"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos==\"center\"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
else if((pos!=\"center\" && pos!=\"random\") || pos==null){LeftPosition=0;TopPosition=20}
settings=\'width=\'+w+\',height=\'+h+\',top=\'+TopPosition+\',left=\'+LeftPosition+\',scrollbars=\'+scroll+\',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no\';
win=window.open(mypage,myname,settings);}
// -->
</script>

Og her er linket, som åbner dit vidue:

<a href=\"f.htm\" onclick=\"NewWindow(this.href,\'TEST\',\'325\',\'300\',\'no\',\'center\');return false\" onfocus=\"this.blur()\">Åben dette popup</a>
Avatar billede visionmagic Nybegynder
17. marts 2001 - 13:07 #6
>>Er der størrelser på popup vinduer, som vil kunne give problemer?

Næææ, du kan bare ændre:
<a href=\"f.htm\" onclick=\"NewWindow(this.href,\'TEST\',\'325\',\'300\',\'no\',\'center\');return false\" onfocus=\"this.blur()\">Åben dette popup</a>

Til:
<a href=\"NYTHTML.htm\" onclick=\"NewWindow(this.href,\'TEST\',\'400\',\'400\',\'no\',\'center\');return false\" onfocus=\"this.blur()\">Åben dette popup</a>
Avatar billede kartolux Nybegynder
17. marts 2001 - 15:10 #7
Jacoba kom først og det virker. Hvordan giver jeg ham point, nå jeg afviste svaret i første omgang?
Avatar billede jakoba Nybegynder
17. marts 2001 - 16:48 #8
afventer nyt svar og accepterer så det (hvis det duer.

I tilfælge af mange forkelliger vinduer, kan du med fordel gøre den ønskede størrelse på vinduet til parametre:

function pop_forside(bredde, hojde) {
  xpos = Math.round((screen.width-bredde)/2);
  ypos = math.round((screen.height-hojde)/2);
  if (navigator.appName!=\"Netscape\") {
    var pos = \",left=\"+xpos+\",top=\"+ypos
  } else {
    var pos = \",screenX=\"+xpos+\",screenY=\"+ypos
  };
  post = window.open( \"f.htm\", \"post\", \"width=\"+bredde +\",height=\"+hojde +pos );
};

funktionen kaldes så med  pop_forside(325,300); eller hvad det nu skal være.
PS: Hvis post-vinduet allerede findes bliver der ikke altid resizet.

mvh JakobA
Avatar billede jakoba Nybegynder
17. marts 2001 - 16:51 #9
den der afrunding ( med Math.round() ) er mest for skønhedens skyld. Det virker også uden.
Avatar billede kartolux Nybegynder
17. marts 2001 - 19:24 #10
Super, Jacoba - over and out :0)
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