Avatar billede the_saint Nybegynder
22. november 2005 - 18:39 Der er 7 kommentarer og
1 løsning

Højre på browseren

Hej ..
Skal bruge en funktion der retunere højden på det "felt" i browseren hvor siden vises .. Altså, uden toolbars, statusbars og sådan ... :)

    function getHeight()
    {
        if(navigator.appName.indexOf('Microsoft')!=-1)
        {
            var h = document.documentElement.clientHeight;
        } else {
            var h = document.documentElement.clientHeight;
        }
        return h;
    }

Bruger jeg nu, men i opera retunere den et tal der ikk kan passe .. :(
(Skal bruge det til at sætte højden på et objekt)
Avatar billede roenving Novice
22. november 2005 - 22:23 #1
function getHeight(){
  return window.innerHeight ? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight;
}
Avatar billede the_saint Nybegynder
23. november 2005 - 09:37 #2
Takker mange gange ..

Hvordan kan jeg se hvorvidt om browseren bruger IE eller en anden?
if(navigator.appName.indexOf('Microsoft')!=-1) kan ikk bruges da opera som standard tilkendegiver sig selv som Microsoft :(
Avatar billede roenving Novice
23. november 2005 - 13:24 #3
Ovenstående er faktisk en måde, hvorpå du får det rigtige resultat, uanset browser, fordi den simpelthen bruger den første funktion, der virker !-)

-- prøv f.eks. følgende:

<script type="text/javascript">
function getHeight(){
  return window.innerHeight ? [window.innerHeight,"innerHeight"] : document.documentElement && document.documentElement.clientHeight ? [document.documentElement.clientHeight,"docElm.clientHeight"] : [document.body.offsetHeight, "body.offsetHeight"];
}
window.onload = function(){alert(getHeight());}
</script>

-- så vil du se, at både Opera og f.eks. FireFox leverer innerHeight, mens IE afhængig af doctype enten leverer docElm.clientHeight eller body.offsetHeight !-)

-- generelt kan det anbefales, at:

1. Brug funktioner, som understøttes af alle browsere ...

2. Test på den funktion eller egenskab, du vil bruge, på samme måde som i ovenstående !o]

3. Hvis kun browser-check giver mening, så test først for Opera !-)
Avatar billede the_saint Nybegynder
23. november 2005 - 13:33 #4
Jeg prøver at kigge lidt på det ... :)
Det er bare fordi at i IE skal der trækkes et mindre tal fra getHeight() end i de andre.. Hvorfor ved jeg ikke .. Men tror det har noget at gøre med min CSS .. :)
Avatar billede roenving Novice
23. november 2005 - 14:01 #5
Så f.eks.

function getHeight(){
  return window.innerHeight ? window.innerHeight - 36 : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight - 24: document.body.offsetHeight - 24;
}

!-)
Avatar billede the_saint Nybegynder
23. november 2005 - 15:59 #6
Kanont, det virker ... :)
Smid et svar ;)
Avatar billede roenving Novice
23. november 2005 - 16:02 #7
Velbekomme '-)
Avatar billede roenving Novice
23. november 2005 - 16:08 #8
-- 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