JavaScript ja DOCTYPE

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.
4707
Äänestä

Muut lukivat myös

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?

Äänestä
  • Kannattaa olla tarkkana, että on aina täydelliset doctypet = oikein kirjoitettu ja dtd mukana. Muuten ei selaimet ymmärrä niitä oikein.

    Äänestä

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.

Äänestä
  • OK, tutkin asiaa noilla ohjeilla. Kiitos vastauksesta ;)

    Äänestä

Kommentoi aloitusta


Ihmettelijä kirjoitti:

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.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu