Avatar billede weber75 Nybegynder
02. juni 2000 - 11:57 Der er 6 kommentarer og
2 løsninger

Centrer popup vindue

Jeg vil gerne have, at mit popup-vindue skal blive vist midt på skærmen.

Kan dette lade sig gøre?
Avatar billede grunken Nybegynder
02. juni 2000 - 12:29 #1
Det kan næsten lade sig gøre ;-), dog skal der arbejdes lidt.

Jeg har svaret på spørgsmålet før her !

http://www.eksperten.dk/spm.asp?id=13506
Avatar billede sone Nybegynder
02. juni 2000 - 12:30 #2
Med lidt udregning så kan det godt lade sig gøre.
Med window.screen.width og window.screen.height kan du aflæse skærmens opløsning (ikke browserens størrelse).
Når du har de tal, kan du modregne størrelse på dit popup-vindue, og beregne x,y koordinaten på øverste, venstre hjørne af vinduet.
Avatar billede theartist Nybegynder
02. juni 2000 - 12:30 #3
Ja det kan det godt: Du får lige et fuldt script serveret:

<SCRIPT Language="JavaScript">
<!--
// Copyright 1999, 2000 by Ray Stott - ver 2.0
// Script is available at http://www.crays.com/jsc         

var popWin = null    // use this when referring to pop-up window
var winCount = 0
var winName = "popWinD"
function openPopWin(winURL, winWidth, winHeight, winFeatures, winLeft, winTop){
  var d_winLeft = 20  // default, pixels from screen left to window left
  var d_winTop = 20  // default, pixels from screen top to window top
  winName = "popWinD" + winCount++ //unique name for each pop-up window
  closePopWin()          // close any previously opened pop-up window
  if (openPopWin.arguments.length >= 4)  // any additional features?
    winFeatures = "," + winFeatures
  else
    winFeatures = ""
  if (openPopWin.arguments.length == 6)  // location specified
    winFeatures += getLocation(winWidth, winHeight, winLeft, winTop)
  else
    winFeatures += getLocation(winWidth, winHeight, d_winLeft, d_winTop)
  popWin = window.open(winURL, winName, "width=" + winWidth
            + ",height=" + winHeight + winFeatures)
  }
function closePopWin(){    // close pop-up window if it is open
  if (navigator.appName != "Microsoft Internet Explorer"
      || parseInt(navigator.appVersion) >=4) //do not close if early IE
    if(popWin != null) if(!popWin.closed) popWin.close()
  }
function getLocation(winWidth, winHeight, winLeft, winTop){
  return ""
  }
//-->
</SCRIPT>
<SCRIPT Language="JavaScript1.2">  // for Netscape 4+ and IE 4+
<!--
function getLocation(winWidth, winHeight, winLeft, winTop){
  var winLocation = ""
  if (winLeft < 0)
    winLeft = screen.width - winWidth + winLeft
  if (winTop < 0)
    winTop = screen.height - winHeight + winTop
  if (winTop == "cen")
    winTop = (screen.height - winHeight)/2 - 20
  if (winLeft == "cen")
    winLeft = (screen.width - winWidth)/2
  if (winLeft>0 & winTop>0)
    winLocation =  ",screenX=" + winLeft + ",left=" + winLeft 
                + ",screenY=" + winTop + ",top=" + winTop
  else
    winLocation = ""
  return winLocation
  }
//-->
</SCRIPT>



og linket ser ud således:
<A HREF='java script:openPopWin("ditlink.asp", 766, 545, "status", "cen", "cen")'>
02. juni 2000 - 13:03 #4
Prøv dette lidt kortere script.

///#### Open PopUp in center of screen ####
function openPopUp(url) {
      var window_left = (screen.width-480)/2;
      var window_top = (screen.height-500)/2;
    myWindow = window.open(url,'MyWin','noresize,scrollbars=auto,width=480,height=500,left=' + window_left + ',top=' + window_top + ',menubar=0,location=0,toolbar=0,status=1');
}


linket:
<a href="java script:PopUp('/events.asp');" onmouseover="window.status='Events'; return true;" onmouseout="window.status=''; return true;">


Avatar billede olebole Juniormester
02. juni 2000 - 13:23 #5
<ole>

Jahhhh....og man kunne da også lige have lusket Lukkeloven incl. tillæg med i scriptet. Det var det heller ikke blevet mindre af...Hehe!
Iøvrigt er det en dårlig idé at bruge screen.width og screen.height. De to tager ikke højde for, om noget systemsoftware f.eks. optager noget af skærmpladsen - som processbaren i Windows. Det gør derimod screen.availWidth og screen.availHeight. Altså (...ved et vindue på 350*200):

function myOpen(page) {
  myX = (screen.availWidth-350)/2;
  myY = (screen.availHeight-200)/2;
  myWin = window.open(page,'popUp','width=350,height=200,screenX='+myX+',left='+myX+',screenY='+myY+',top='+myY);
}

Og kaldet:

<a href="java script:myOpen('etEllerAndet.html');">&Aring;ben</a>

/Vh
</bole>
Avatar billede weber75 Nybegynder
02. juni 2000 - 13:37 #6
Til Grunken, sone og theartist. I skulle ikke have været afvis, blot have færre point end def og olebole. Sorry...
02. juni 2000 - 15:25 #7
olebole>> Smart lille finte du kommer med der!
Jeg skrive den bag øret..
Statans der er ikke plads! Der står EU´s direktiv om udforming af fodgængerfelter...
Avatar billede olebole Juniormester
02. juni 2000 - 21:28 #8
def >> Den med Lukkeloven var ikke til dig, men til 'theartist'. Jeg havde været ude og lave kaffe og havde ikke opdateret skærmen, så jeg så ikke dit indlæg ;-)
Og til theartist må jeg så hellere skrive, at det var en joke og ikke ondt ment - han kender mig nu fra Eksperten, så jeg tror godt, han ved det ;-)
/Vh
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