Avatar billede svjensen Nybegynder
27. oktober 2003 - 08:14 Der er 9 kommentarer og
1 løsning

Højde på nyt vindue.

Vha. nedenstående script åbner jeg et nyt vindue, og viser et billede.

Hvis jg anvender PopupBillede1, så passer højden inkl. de 15 pixel. Men hvis jeg anvender PopupBillede (som jeg selv sender højden til, så bliver højde hele skærmen.

Er der nogen der kan gennemskue problemet?

******** SCRIPT START *****************
<script language="JavaScript" type="text/javascript">
function PopupBillede(file, tekst, width, height){
//  h=height+15;
    winTop=(screen.height-height)/2;
    winLeft=(screen.width-width)/2;
    newWin=window.open("","VisBillede","height="+height+",width="+width+",top="+winTop+",left="+winLeft+",scrollbars=no,status=no");
    newWin.document.writeln('<ht'+'ml>');
    newWin.document.writeln('<he'+'ad>');
    newWin.document.writeln('<ti'+'tle>'+file+'<\57tit'+'le>');
    newWin.document.writeln('<link rel="stylesheet" type="text/css" href="css/bball.css">');
    newWin.document.writeln('<\57he'+'ad>');
    newWin.document.writeln('<bo'+'dy style="border:0px;margin:0px">');
    newWin.document.writeln('<d'+'iv id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;">');
    newWin.document.writeln('<\57d'+'iv>');
//    newWin.document.write('<scr'+'ipt language="JavaScript" src="overlib.js">');
//    newWin.document.write('<!'+'-- overLIB (c) Erik Bosrup --'+'><\57scr'+'ipt>');
    newWin.document.writeln('<cen'+'ter>');
//    newWin.document.writeln('<a href="java script:void(0);" onmouseover="return overlib(\47'+tekst+'\47);" onmouseout="return nd();">');
    newWin.document.writeln('<i'+'mg name="billede" src="'+file+'" style="overflow:hidden;top:0px;left:0px;border:0px;">');
//    newWin.document.writeln('<\57a>');
    newWin.document.writeln('<a href="java script:window.close();">Luk vinduet<\57a>');
    newWin.document.writeln('<\57ce'+'nter><\57b'+'ody><\57ht'+'ml>');
    newWin.document.close();
    }

function PopupBillede1(file, tekst){
    picture=new Image();
    picture.src=file;
    h=picture.height+15;
    w=picture.width;
    winTop=(screen.height-h)/2;
    winLeft=(screen.width-w)/2;
    newWin=window.open("","VisBillede","height="+h+",width="+w+",top="+winTop+",left="+winLeft+",scrollbars=no,status=no");
    newWin.document.writeln('<ht'+'ml>');
    newWin.document.writeln('<he'+'ad>');
    newWin.document.writeln('<ti'+'tle>'+file+'<\57tit'+'le>');
    newWin.document.writeln('<link rel="stylesheet" type="text/css" href="css/bball.css">');
    newWin.document.writeln('<\57he'+'ad>');
    newWin.document.writeln('<bo'+'dy style="border:0px;margin:0px">');
    newWin.document.writeln('<d'+'iv id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;">');
    newWin.document.writeln('<\57d'+'iv>');
//    newWin.document.write('<scr'+'ipt language="JavaScript" src="overlib.js">');
//    newWin.document.write('<!'+'-- overLIB (c) Erik Bosrup --'+'><\57scr'+'ipt>');
    newWin.document.writeln('<cen'+'ter>');
//    newWin.document.writeln('<a href="java script:void(0);" onmouseover="return overlib(\47'+tekst+'\47);" onmouseout="return nd();">');
    newWin.document.writeln('<i'+'mg name="billede" src="'+file+'" style="overflow:hidden;top:0px;left:0px;border:0px;">');
//    newWin.document.writeln('<\57a>');
    newWin.document.writeln('<a href="java script:window.close();">Luk vinduet<\57a>');
    newWin.document.writeln('<\57ce'+'nter><\57b'+'ody><\57ht'+'ml>');
    newWin.document.close();
    }
</script>
******** SCRIPT SLUT *****************
Avatar billede svjensen Nybegynder
27. oktober 2003 - 08:15 #1
'h' i PopupBillede er rettet til height men det giver ingen forskel (derfor indsat som kommentar indtil videre)
Avatar billede roenving Novice
27. oktober 2003 - 09:01 #2
Prøv:

function PopupBillede(f, t, w, h){
//  h+=15;
    winTop=(screen.height-h)/2;//Og jeg ville nok bruge availHeight
    winLeft=(screen.width-w)/2;//Og jeg ville nok bruge availWidth
    newWin=window.open("","VisBillede","height="+h+",width="+w+",top="+winTop+",left="+winLeft+",scrollbars=no,status=no");
Avatar billede svjensen Nybegynder
27. oktober 2003 - 09:43 #3
Det ændrede ikke noget.
Avatar billede svjensen Nybegynder
27. oktober 2003 - 09:44 #4
Hvilken forskel vil availHeight/availWidth gøre?
Avatar billede roenving Novice
27. oktober 2003 - 09:53 #5
availHeight/Width svarer kun tilbage med det som rent faktisk er til rådighed screen.width svarer med hele skærmens størrelse, som sjældent er helt aktuel, da man jo f.eks. kan have sin menubar permanent fremme !-)

-- og en anden forøvrigt:

Det er ikke særlig effektivt at lave en masse .writeln-kald, men smartere at konkatenere en streng og så til sidst lave eet document.write-kald ...

    txt = '<ht'+'ml>';
    txt += '<he'+'ad>';
    ...

    newWin.document.write(txt);
    newWin.document.close();
Avatar billede svjensen Nybegynder
27. oktober 2003 - 09:59 #6
Jeg har fundet frem til fejlen, men jeg ved ikke hvordan jeg løser den.

Hvis jeg sender h = 300 til scriptet, så bliver det til 30015 når det kommer igennem linien h+=15;
Hvordan ændrer jeg det til at det bliver lagt til?
Avatar billede roenving Novice
27. oktober 2003 - 10:01 #7
h = +h+15;
Avatar billede svjensen Nybegynder
27. oktober 2003 - 10:05 #8
Excellent! Det virker.

Husk et svar
Avatar billede roenving Novice
27. oktober 2003 - 10:07 #9
Velbekomme '-)
Avatar billede roenving Novice
27. oktober 2003 - 10:13 #10
-- og tak for points ;~}

-- og det var jo så endnu et eksempel på, at mange fejl befinder sig uden for den sfære man kigger i !-)

For fejlen er, at du afsender en tekstvariabel til funktionen og så kan du selvfølgelig ikke der behandle den som tal-variabel ...
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