Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

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,