Avatar billede angelod Novice
19. juli 2004 - 00:17 Der er 16 kommentarer og
1 løsning

Scroll-fejl i IE6?

Jeg er i gang med at arbejde på et system, og skal i denne forbindelse have en onscroll-funktion. Det kan jeg som sådan også sagtens finde ud af at lave, men der er et problem med den.

I det ene design virker det fint, men i det andet virker det overhovedet ikke. Er der nogle som kan fortælle mig hvorfor?

http://test.fursoft.dk/layout1/layout.html <--> VIRKER IKKE
http://test.fursoft.dk/layout2/layout.html <--> VIRKER
Avatar billede roenving Novice
19. juli 2004 - 00:23 #1
Virker det heller ikke, hvis dit layout som udgangspunkt har samme længde ?-)
Avatar billede angelod Novice
19. juli 2004 - 02:25 #2
Længden burde bestemt ikke have noget at sige, så længe det kan scrolle, hvilket det kan. Jeg vil bestemt ikke kræve at en side _skal_ have en bestemt højde, hvis det skal virke. Det skal jo virke uanset om man kun kan scrolle en kvart skærm, eller 5 hele skærme.
Avatar billede roenving Novice
19. juli 2004 - 02:30 #3
Det var såmænd også for at få en chance for at pinpointe forskellen, men jeg prøvede så med forskellige skærmstørrelse ved load, og fandt ud af, at den korte side, som ikke havde scroll fra start, svarede hele tiden, når jeg reloadede i en mindre browser-størrelse !-)
Avatar billede angelod Novice
19. juli 2004 - 02:36 #4
Men den lange side er den der ikke virker her, den med Tordenskiold. Jeg kan bare ikke finde ud af hvorfor.
Avatar billede roenving Novice
19. juli 2004 - 02:45 #5
Prøv at fjerne doctypen, jeg vil ikke blive forundret, hvis det kan gøre det !-)

For såvidt jeg ved findes onscroll ikke på et body-element ifølge standarden ...

http://www.w3.org/TR/html401/struct/global.html#edef-BODY

-- måske kan du få fat i den med doctype, hvis du bruger:

<script type="text/javascript">
function alertScroll(){
  alert('Test');
}
document.body.onscroll = alertScroll;
</script>
Avatar billede roenving Novice
19. juli 2004 - 03:01 #6
Tjah, jeg fik konstateret, at IE ikke svarede, hvis den var sat i standards-mode både med html401 strict og transitional ...

Men bare hvis man fjernede dtd-linket virkede onscroll ...

-- og jeg brugte så ovenstående metode (kræver at scriptet først kommer efter </body> eller aktiveres onload !-), men er ret overbevist om at det ikke bliver anderledes, hvis man sætter event-kaldet i body !o]
Avatar billede roenving Novice
19. juli 2004 - 03:11 #7
Hallo, den virker zq med:

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

og:

<script type="text/javascript">
window.onscroll = function(){alert('Hej')}
</script>
Avatar billede angelod Novice
19. juli 2004 - 03:34 #8
Skal dette komme i <head> eller <body> sektionen?
Avatar billede roenving Novice
19. juli 2004 - 03:41 #9
Og også i strict 401, xhtml1 transitional og strict samt xhtml1.1 var den virksom, så det handler åbenbart om, at det er det rigtige html-DOM-element, som skal have eventen ...

(I øvrigt gælder f.eks. scroll-bar-properties også i IE, hvis man sætter dem på html-elementet i standards-mode, hvor de i quirks-mode skal sættes på body-elementet !-)
Avatar billede roenving Novice
19. juli 2004 - 04:06 #10
-- og jeg prøvede sågar at lave en validering med xhtml1.1 ...

-- der kræves det, at javascript-blokken står i head-sektionen, men ellers har det ikke nogen større betydning med en funktionstildeling som den ovenstående !-)
Avatar billede angelod Novice
19. juli 2004 - 04:17 #11
Fedest! Det virker jo perfekt. Tak! Var ved at stirre mig blind på det skidt. *lol*

Smider du ikke lige et svar, så du kan få dine velfortjente point? :)
Avatar billede roenving Novice
19. juli 2004 - 13:23 #12
Velbekomme '-)
Avatar billede angelod Novice
19. juli 2004 - 15:00 #13
Lige en ting til, hvis du har tid.. Jeg afprøvede det på det design jeg linkede til, og det virkede fint, men da jeg så implementerede det i systemet, så virkede det ikke længere. Alle JavaScript funktioner er placeret i eksterne filer, så jeg tænkte på om dette kunne være problemet?

Hvis det er, hvad jeg kan så gøre, ud over at skulle indsætte JavaScript (eller JScript faktisk) direkte i filen, hvilket er det jeg prøver at undgå. Jeg kan desværre ikke poste et link til systemet endnu, da der kræves adgangskode til den sektion, men spørg gerne om noget, og jeg skal poste det jeg kan.

Hvis vi finder en løsning, og du har lyst, så skal du nok få flere point. Jeg har nok af dem, og at finde en løsning på de problemer jeg har, er uendeligt vigtigere end at have point her på Eksperten :)
Avatar billede roenving Novice
19. juli 2004 - 21:03 #14
Kan du ikke lige fortælle lidt mere ...

Arh ...

Måske har du ikke husket at fjerne html-koden, for en javascript-fil må kun indeholde javascript-kode, så du skal fjerne <script> og </script> ...

-- og dem skriver du jo alligevel også i html-filen !-)

<script type="text/javascript" src="windowScroll.js"></script>

-- og så har du jo allerede givet rigeligt mange point !o]

(og du skal huske den der 200 points-grænse, som administreres rimeligt strikst !-)
Avatar billede angelod Novice
19. juli 2004 - 21:29 #15
Der er ingen HTML koder i JavaScript filerne, og alt andet JScript virker fint. Det er kun scrolling der ikke fungerer. Den kalder simpelthen ikke funktionen når jeg har et <!DOCTYPE> tag.
Avatar billede roenving Novice
19. juli 2004 - 22:30 #16
Det gør den hos mig ...

Prøvede med denne simple fil (endda i xhtml1.1 !-)

alert('Vi starter')
window.onscroll = function(){alert('Hej')}
Avatar billede angelod Novice
20. juli 2004 - 00:32 #17
Det er underligt.. Hmm.. Jeg prøver lige at kigge lidt på det, men indtil videre har jeg fjernet DOCTYPE.
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