Avatar billede theselfimages Nybegynder
05. december 2002 - 14:09 Der er 22 kommentarer og
1 løsning

Modificering af Modeless popup

Kan man udbygge dette script til automatisk at centrerer sig på skærmen og tilmed sætte vinduets størrelse efter brugerens screen resolution?

<script>
function modelesswin(url,mwidth,mheight){
if (document.all&&window.print) //if ie5
eval('window.showModelessDialog(url,"","help:0;resizable:1;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px")')
else
eval('window.open(url,"","width='+mwidth+'px,height='+mheight+'px,resizable=1,scrollbars=1")')
}

</script>

<a href="java script:modelesswin('http://yahoo.com',100,100)">Click here</a>
Avatar billede Slettet bruger
05. december 2002 - 14:17 #1
Ja, men du bliver nok nødt til at vælge én af delene! :)

Centrering:

function modelesswin(url, mwidth, mheight) {
v = (screen.width - mwidth) / 2;
t = (screen.height - mheight) / 2;
if (document.all & &window.print) //Hvis IE5
window.showModelessDialog(url, "", "help:0;resizable:1;dialogWidth:" + mwidth + "px;dialogHeight:" + mheight + "px;dialogLeft:" + v + "px;dialogTop:" + t + "px");
else
window.open(url, "", "width=" + mwidth + ",height=" + mheight + ",left=" + v + ",top=" + t + ",resizable=1,scrollbars=1");
}

Skærm opløsning:

function modelesswin(url) {
mwidth = (screen.availWidth) ? screen.availWidth : screen.width;
mheight = (screen.availHeight) ? screen.availHeight : screen.height;
if (document.all & &window.print) //Hvis IE5
window.showModelessDialog(url, "", "help:0;resizable:1;dialogWidth:" + mwidth + "px;dialogHeight:" + mheight + "px;dialogLeft:0px;dialogTop:0px");
else
window.open(url, "", "width=" + mwidth + ",height=" + mheight + ",left=0,top=0,resizable=1,scrollbars=1");
}
Avatar billede theselfimages Nybegynder
05. december 2002 - 14:35 #2
Hmm jeg får scriptfejl!
Avatar billede Slettet bruger
05. december 2002 - 14:36 #3
I hvilken et af scriptene?

Og kan du smide et link?
Avatar billede theselfimages Nybegynder
05. december 2002 - 14:39 #4
I har pt. intet at linke til..
Men jeg får fejl på dette:

<script>
function modelesswin(url) {
mwidth = (screen.availWidth) ? screen.availWidth : screen.width;
mheight = (screen.availHeight) ? screen.availHeight : screen.height;
if (document.all & &window.print) //Hvis IE5
window.showModelessDialog(url, "", "help:0;resizable:1;dialogWidth:" + mwidth + "px;dialogHeight:" + mheight + "px;dialogLeft:0px;dialogTop:0px");
else
window.open(url, "", "width=" + mwidth + ",height=" + mheight + ",left=0,top=0,resizable=1,scrollbars=1");
}

</script>
</head>

<body>
<a href="java script:modelesswin">Click here</a>
</body>

</html>
Avatar billede Slettet bruger
05. december 2002 - 14:41 #5
Du giver jo heller ingen paremetre til funktionen:

<a href="#" onClick="modelesswin('din_side.html'); return false>">Åbn mlw!</a>
Avatar billede theselfimages Nybegynder
05. december 2002 - 14:43 #6
Hmm.. men jeg får stadig en Syntax error
Avatar billede Slettet bruger
05. december 2002 - 14:52 #7
Værsgo:

<html>
<head>
<script>
function mlw(url) {
mwidth = (screen.availWidth) ? screen.availWidth : screen.width;
mheight = (screen.availHeight) ? screen.availHeight : screen.height;
if (document.all && window.print) //Hvis IE5
window.showModelessDialog(url, "", "help:0;resizable:1;dialogWidth:" + mwidth + "px;dialogHeight:" + mheight + "px;dialogLeft:0px;dialogTop:0px");
else
window.open(url, "", "width=" + mwidth + ",height=" + mheight + ",left=0,top=0,resizable=1,scrollbars=1");
}
</script>
</head>
<body>
<a href="#" onClick="mlw('din_side.html'); return false;">Åbn mlw!</a>
</body>
</html>
Avatar billede theselfimages Nybegynder
05. december 2002 - 15:02 #8
Hmm.. det er helt gak! Den åbner ikke noget NYT vindue og kan ikke
vise den side man linker til. I stedet viser den sourcekoden af den
side der linkes til !?!
Avatar billede theselfimages Nybegynder
05. december 2002 - 15:06 #9
Man kunne evt. droppe den modeless halløj og bare ha' et et popup
vindue der fylder hele skærmen efter brugerens screen resolution,
uden toolbars, men med topbar så man kan lukke og minimerer vinduet.
Avatar billede Slettet bruger
05. december 2002 - 17:04 #10
Det er lidt underligt, eftersom det virker hos mig.
Kan du ikke vise HELE koden til din test-side?
Avatar billede theselfimages Nybegynder
09. december 2002 - 01:15 #11
Ok.. det virker også her. Men dog ikke i Opera browseren?
+ at vinduet syntes at være for stort (rager uden for skærmen)
i Netscape!
Avatar billede Slettet bruger
09. december 2002 - 15:48 #12
For at fikse det med Opera, kan du gøre således:

function mlw(url) {
mwidth = (screen.availWidth) ? screen.availWidth : screen.width;
mheight = (screen.availHeight) ? screen.availHeight : screen.height;
if (navigator.appName.indexOf("Opera") == -1 && document.all && window.print) //Hvis IE5
window.showModelessDialog(url, "", "help:0;resizable:1;dialogWidth:" + mwidth + "px;dialogHeight:" + mheight + "px;dialogLeft:0px;dialogTop:0px");
else
window.open(url, "", "width=" + mwidth + ",height=" + mheight + ",left=0,top=0,resizable=1,scrollbars=1");
}

Hvor meget rager vinduet uden for skærmen i NS?
Avatar billede theselfimages Nybegynder
09. december 2002 - 16:12 #13
Hmm.. nu åbner den i IE noget af mit site i det første vindue,
for så at åbne resten i et almindeligt popup vindue...
Avatar billede Slettet bruger
09. december 2002 - 16:15 #14
Prøv:

if (!window.opera && document.all && window.print) //Hvis IE5
Avatar billede theselfimages Nybegynder
09. december 2002 - 16:21 #15
Nope.. den er helt gal. Nu åbner den ikke længe noget popup.
Avatar billede Slettet bruger
09. december 2002 - 16:27 #16
if (typeof(window.opera) == "undefined" && document.all && window.print) //Hvis IE5
Avatar billede theselfimages Nybegynder
09. december 2002 - 16:40 #17
hmm.. helt gak.. prøv selv at se hvordan den åbner vinduerne..

www.theselfimages.dk/default2.asp

Den skal jo ikke åbne det sidste popup. !!
Avatar billede Slettet bruger
09. december 2002 - 16:49 #18
Bliver det sidste vindue ikke bare åbnet fra siden i dit modeless vindue?
Avatar billede theselfimages Nybegynder
09. december 2002 - 16:55 #19
hmm.. jo.. men det burde det ikke.. Siden i modeless er preloaderen..
og den linker bare til den næste side i sit eget vindue!
Jeg syntes bare ikke den gjore sådan i går?!!?
Avatar billede Slettet bruger
09. december 2002 - 17:05 #20
Hm, ændr først scriptet til dette:

function mlw(url) {
mwidth = (screen.availWidth) ? screen.availWidth : screen.width;
mheight = (screen.availHeight) ? screen.availHeight : screen.height;
if (window.showModelessDialog)
window.showModelessDialog(url, "", "help:0;resizable:1;dialogWidth:" + mwidth + "px;dialogHeight:" + mheight + "px;dialogLeft:0px;dialogTop:0px");
else
window.open(url, "", "width=" + mwidth + ",height=" + mheight + ",left=0,top=0,resizable=1,scrollbars=1");
}

Ved nærmere eftersyn ser det ud, som om du ikke bare sådan kan ændre url'en i et modeless vindue. Og hvorfor overhovedet bruge modeless windows i dit tilfælde?
Avatar billede theselfimages Nybegynder
09. december 2002 - 17:18 #21
Hmm.. ja så dur det ikke, hvis URL'en ikke kan ændres.
Ved ikke om du bemærkede at der startede noget musik på forsiden,
hvorfra selve sitet blev åbnet med denne popup funktion.
Anyway det er musikken der er hele problemet og grunden til brug
af popup. Jeg kan ikke lægge det på selve sitet da siden hele
tiden refresher, når noget klikkes. Og jeg bruger ikke frames.
Avatar billede Slettet bruger
09. december 2002 - 18:16 #22
Hvad med at preloade billederne på den side, hvor musikken er, og så åbne siden i vinduet?
Avatar billede theselfimages Nybegynder
09. december 2002 - 18:55 #23
Okay.. jeg prøver at se på det. Tak for din hjælp.
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