Miksi ihmeessä HTML:n DOCTYPE-määritys näyttää vaikuttavan JavaScriptin suoritukseen ainakin uusimmassa IE-selaimissa. Eli jos määritys on ja käytetään esim. y = document.body.scrollTop; niin toimii oikein. Skrollatessa sivua alaspäin y:n arvo muuttuu oikein. Jos vaihdan DOCTYPE:en HTML 4.01, niin tämän metodin toiminta lakkaa, tulos on aina 0.
JavaScript ja DOCTYPE
Ihmettelijä
4707
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 4
Vanhimmat
Vaikutus tulee esille 4.0, 4.01 riippumatta. Vaikuttava tekija olikin seuraavissa sitaateissa oleva dtd:n polku, ilman sitä toimii, sen kanssa ei. Eli jos laitat sivun alkuun normaalin määrityksen:
niin ei toimi. Jos laitat pelkän alkuosan
tai jätät kokonaan pois niin toimii.
Kiinnittyi huomio väärään tekijään, yhtä outoa kuitenkin?
Kannattaa olla tarkkana, että on aina täydelliset doctypet = oikein kirjoitettu ja dtd mukana. Muuten ei selaimet ymmärrä niitä oikein.
DOCTYPE HTML 4.01 laittaa selaimen standarditilaan ja asiat toimii hiukan eri tavalla.
Tähän tapaukseen hyvä ohjesivu
http://www.quirksmode.org/viewport/compatibility.html
Siellä on toisena Scrolling offset esimerkki ja lopussa lisäksi taulukot miten mikäkin toimii.
Ymmärrät varmaan tuolta suoraan, niin ei kannata tässä alkaa käydä läpi.
OK, tutkin asiaa noilla ohjeilla. Kiitos vastauksesta ;)