Avatar billede tblaster Nybegynder
15. februar 2006 - 09:15 Der er 13 kommentarer og
1 løsning

Finde størrelsen af browser vinduets scroll area i firefox

Hejsa

Jeg har et mindre problem med at finde størrelsen af browservinduet. Jeg har nedenståendekode som returner de rigtige størrelser i Internet Explorer. Men i firefox er der problemer med værdien af højden:

-----------------------------------------------------
function hw(){
    if (document.documentElement && document.documentElement.clientWidth)
    {
        Width     = document.documentElement.clientWidth;
        Height     = document.documentElement.clientHeight;
    }
        else if (document.body && document.body.clientWidth)
    {
        Width     = document.body.clientWidth;
        Height     = document.body.clientHeight;
    }
    else
    {
        Height     = window.innerHeight;
        Width     = window.innerWidth;
    }
}
-----------------------------------------------------

I IE udskrives bredde x højde som:
1276x854

I firefox får jeg:
1272x2020

Det sidste resultat er naturligvis forkert.
Avatar billede roenving Novice
15. februar 2006 - 13:13 #1
Hrm, når jeg prøver, får jeg vinduets størrelse ...

-- hvilken doctype bruger du ?-)
Avatar billede tblaster Nybegynder
15. februar 2006 - 14:37 #2
Doctype?
Avatar billede roenving Novice
15. februar 2006 - 14:40 #3
Har du ikke et tag foran html-tagget, f.eks.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
Avatar billede tblaster Nybegynder
15. februar 2006 - 14:42 #4
nope ... gør det en forskel, og hvilket skal jeg evt. bruge?
Avatar billede roenving Novice
15. februar 2006 - 14:53 #5
-- det gør en endog meget stor forskel, hvis man bare bruger det allermindste css og sætter størrelser der, for uden en sådan finder IE på at fortolke css på sin helt egen måde, som ikke stemmer overens med andres browseres ...

-- og hvis du ikke før har brugt en, er det præcis den ovenstående, da den accepterer stort set alle (også deprecatede !-) html-ting ...

-- til gengæld vil hjemmeside-konstruktører, som hidtil har udviklet primært til IE ofte få sig en forskrækkelse, når også den browser begynder at fortolke css nogenlunde korrekt (og speciel box-modellen efter standarden !-)
Avatar billede tblaster Nybegynder
15. februar 2006 - 15:20 #6
Det gør en forskel. Nu får jeg den rigtige højde ud, men jeg har problemer med at få tilgivet værdien til et element. Det virker fint i IE men ikke i firefox.

-----------------------------------------------------------
hw();
alert(Width+ "x" + Height);
// IE:     1276x854
// F:     1276x854

document.getElementById("s").style.width = Width;
document.getElementById("s").style.height = Height;
document.getElementById("s").style.position = "absolute";
document.getElementById("s").style.top = "0px";
document.getElementById("s").style.left = "0px";
document.getElementById("s").style.backgroundColor = "#FFFFFF";

alert(document.getElementById("s").style.width + "x" + document.getElementById("s").style.height);
// IE:     1276pxx854px
// F:     x
-----------------------------------------------------------
Avatar billede roenving Novice
15. februar 2006 - 15:24 #7
-- en css-længde _skal_ altid have enhed på, så:

  var st = document.getElementById("s").style
  st.width = Width + "px";
  st.height = Height + "px";
  st.position = "absolute";
  st.top = "0px";
  st.left = "0px";
  st.backgroundColor = "#fff";
Avatar billede tblaster Nybegynder
15. februar 2006 - 15:38 #8
Det hjalp. Men tilknytningen af en doctype gjorde at jeg ikke får vist noget onmouseover tekst rigtigt. Kan du hjælpe med det?

Min kode ser således ud:
onmouseover='java script:show(this.id,""" & replace(DB_Navn, "'", "_") & "\nTryk for at åbne billedet i slideshowet"");'

Det bliver i Firefox vist som:
Et eller andet[]Tryk for at åbne billet i slideshowet.

Hvor [] er en stor sort kasse.

Desuden så får jeg ikke vist teksten når DB_Navn indeholder en '. Hvad skal jeg replace denne med for at få dette udskrevet rigtigt?
Avatar billede roenving Novice
15. februar 2006 - 15:40 #9
Hvad er din show()-funktion ?-)
Avatar billede tblaster Nybegynder
15. februar 2006 - 15:47 #10
Ups :-)

Str = "<script type=""text/javascript"">" & VbCrLf
Str = Str & "function show(id,txt)" & VbCrLf
Str = Str & "{ " & VbCrLf
Str = Str & "document.getElementById(id).title = txt;" & VbCrLf
Str = Str & "}" & VbCrLf
Str = Str & "</script>" & VbCrLf
Response.write Str
Avatar billede roenving Novice
15. februar 2006 - 15:51 #11
Såvidt jeg ved, er det kun IE, som kan implementere linjeskift i tooltip, til gengæld burde de andre browsere sætte et alternativt whitespace ind hvis du indsætter htm-entiteten for linjeskift: &#10; i stedet for \n !-)
Avatar billede tblaster Nybegynder
15. februar 2006 - 16:02 #12
Ok. Takker for hjælpen. Smid et svar, så skal du få dine point!
Avatar billede roenving Novice
15. februar 2006 - 16:07 #13
Velbekomme '-)
Avatar billede roenving Novice
15. februar 2006 - 16:11 #14
-- 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