Avatar billede eksperten1 Nybegynder
23. september 2004 - 15:26 Der er 10 kommentarer og
1 løsning

Centere popup vindue

Jeg har store problemer med at få mit popupvindue centreret. Det skal fungere på Mac og PC i IE og Firefox, men hold da op.!!

Her er min kode pt. som sender vinduet til 0,0;

function centerme(){
    var mywidth = window.innerWidth;
    var myheight = window.innerHeight;
    var myleft = (screen.availWidth - mywidth/2);
    var mytop = (screen.availHeight - myheight /2);
    window.moveTo(myleft, mytop);
}
//-->
</script>
<body onload="centerme();"
Avatar billede knudgert Nybegynder
23. september 2004 - 17:00 #1
<script type="text/javascript">
function NewWindow(mypage, myname, w, h, scroll) {
var winl = (screen.width - w) / 2;
var wint = (screen.height - h) / 2;
winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable'
win = window.open(mypage, myname, winprops)
if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}
</script>

<body onload="NewWindow('http://dr.dk','link','400','400','no');">

Virker i alle windowsbrowsere, så mon ikke også på macbrowsere, kan ikke tjekke det.

Men det er en meget dårlig ide, dels er det upopulært og alle der bruger en popupblocker ser ikke popupvinduet (og mon ikke det er de fleste nu om dage?)

Åbn popupvinduet med et link i stedet for.


<a href="http://dr.dk" onclick="NewWindow(this.href,'link','400','400','no');return false;">DR</a>
Avatar billede eksperten1 Nybegynder
23. september 2004 - 21:26 #2
Jeg skal bruge en funktion jeg kalder I popup vinduet, ikke en som åbner et popupvindue centreret. Det er ikke til et public site så det bliver ikke noget problem.

mvh Mark
Avatar billede roenving Novice
24. september 2004 - 03:12 #3
<script type="text/javascript">
function centerme(){
    var mywidth = (window.outerWidth)?window.outerWidth;document.body.scrollWidth+8;
    var myheight = (window.outerHeight)?window.outerHeight;document.body.scrollHeight+36;
    var myleft = (screen.availWidth - mywidth)/2;
    var mytop = (screen.availHeight - myheight)/2;
    window.moveTo(myleft, mytop);
}
window.onload = centerme;
//-->
</script>
<body>
Avatar billede roenving Novice
24. september 2004 - 03:13 #4
Hov ...

<script type="text/javascript">
function centerme(){
    var mywidth = (window.outerWidth)?window.outerWidth:document.body.scrollWidth+8;
    var myheight = (window.outerHeight)?window.outerHeight:document.body.scrollHeight+36;
    var myleft = (screen.availWidth - mywidth)/2;
    var mytop = (screen.availHeight - myheight)/2;
    window.moveTo(myleft, mytop);
}
window.onload = centerme;
//-->
</script>
<body>
Avatar billede eksperten1 Nybegynder
24. september 2004 - 10:41 #5
>roenving - Tak det spiller.

Hvis jeg må komme med et ekstra feature-request ?
Jeg skal bruge en funktion som kan resize et popupvindue ud fra hvor stor en given tabel er på siden, kan det lade sig gøre ?

Hvis nu jeg eks. har en <table name="maintbl"> kan jeg så få resizet vinduet så det passer til den tabel, evt. med en max værdi i højde/bredde. (sådan at en ekstra bred tabel ikke laver et kæmpevindue, eller tilsvarende lang tabel)

Skal jeg oprette et nyt spm ?

Tak igen!
mvh Mark
Avatar billede eksperten1 Nybegynder
24. september 2004 - 10:42 #6
BTW så fungerer centerme ikke i IE på Mac ?! irriterende MS-l*rt!!
Avatar billede roenving Novice
24. september 2004 - 13:10 #7
Aner ikke om det vil virke på mac'erne, men IE/Mac er vist en særdeles marginal browser, så jeg ville satse på at teste det i f.eks. Safari (som den vist nærmest er født med !-) og Mozilla på Mac ...

Men du kan jo prøve med en udvidelse:

    var mywidth = (window.outerWidth)?window.outerWidth:(document.body.scrollWidth)?document.body.scrollWidth+8:document.body.offsetWidth+8;
    var myheight = (window.outerHeight)?window.outerHeight:(document.body.scrollHeight)?document.body.scrollHeight+36:document.body.offsetHeight+36;

-- og jeg synes du skal tage den anden i et nyt spørgsmål, for hvis jeg nu ikke når at reagere mere, kan du i hvert fald få andre til at kigge (for lige nu er jeg for doven -- og har en fyldt indbakke !-)
Avatar billede eksperten1 Nybegynder
24. september 2004 - 13:44 #8
Tja du har ret, men mange Mac brugere bruger IE af gammel vane, endda størstedelen tror jeg (er selc Mac bruger(også))

Tak for det, jeg prøver med det kode du smed her og så opretter jeg et nyt spm om table.!

Tak for det, smider du et svar ?
Avatar billede roenving Novice
24. september 2004 - 13:50 #9
Velbekomme '-)

-- og jeg skal da lige tilføje, at IE/Mac på mig virker som et venstrehåndsarbejde, som kun i enkelte hjørner har taget mac'ens arkitektur alvorligt, men de fleste steder har forsøgt at portere den dårlige mac-kopi windows' funktioner til det originale miljø uden at gøre det ordentligt !o]

-- og hvad dælen er ideen i at bruge et produkt fra den største software-producent på en direkte konkurrerende teknologi ?-) Man kan da være sikker på, at de ikke tager produktet alvorligt, så for mig er IE/Mac afdød (og forøvrigt opdateres skidtet ikke mere !-)
Avatar billede eksperten1 Nybegynder
24. september 2004 - 14:01 #10
Hørt! Hørt! Jeg er enig - og på sigt vil den da også forsvinde, men der er stadig rigtig mange macbrugere der end ikke kører osx, så der har svært ved at hive en Safari eller Firefox browser ned.
Avatar billede roenving Novice
24. september 2004 - 14:16 #11
Det er et problem !-)

-- og tak for point ;~}
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