mozilla
Your Search Results

    Problémy s výpisy svátků

    Javascriptové kódy vypisující na stránku aktuální datum, čas nebo svátek jsou stále poměrně oblíbené. Ty nejrozšířenější však často obsahují chyby, díky kterým v moderních prohlížečích nefungují. Jak na ně?

    Svátky

    Nejčastěji používaný skript na svátky obsahuje ve svém zdrojovém kódu základní chybu. Poznáte jej podle podmínky, která obecně vypadá takto:

    if (den==09) document.write("Vratislav");
    

    Javascriptový interpret na tomto místě předpokládá číselnou konstantu. Pokud máte zkušenosti s používáním javascriptové konzoly v prohlížečích Mozilla nebo Firefox, můžeme si v ní přečíst chybovou hlášku, že 09 není platnou konstantou. Z matematického hlediska totiž číslo nesmí začínat nulou. Kdybychom úvodní nulu v podmínce opravdu chtěli, museli bychom použít zápis pro řetězec - 09 uvést v uvozovkách. Nás však zajímá číslo. Oprava je tedy velice jednoduchá, stačí smazat úvodní nulu:

    if (den==9) document.write("Vratislav");
    

    Datum

    V případě skriptů vypisujících datum se často setkáváme s funkcí getYear(). Jde o funkci, která byla implementovaná v prvních prohlížečích a měla vracet počet let uplynulých od roku 1900. Postupem času vymizela (korektně pracující zůstala prakticky pouze v MSIE) a byla nahrazena funkcí getFullYear(). Použití funkce getYear() v moderních prohlížečích způsobuje nekompatibilitu a skript potom vypisuje nesmyslné datum. Této chybě se někdy říká "javascriptový Y2K". Oprava je rovněž velice jednoduchá:

    Špatně

    JS:

    datum=new Date;
    rok=datum.getYear();
    

    Správně

    JS:

    datum=new Date;
    rok=datum.getFullYear();
    

    Související odkazy


    Informace o původním dokumentu

    • Autor: Josef Kotva

    Document Tags and Contributors

    Contributors to this page: Majda
    Last updated by: Majda,