Opravy chyb webmasterů:Problémy s výpisy svátků
Z MDC
« Předchozí Následující »
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ě?
[editovat] 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");
[editovat] 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á:
[editovat] Špatně
JS:
datum=new Date; rok=datum.getYear();
[editovat] Správně
JS:
datum=new Date; rok=datum.getFullYear();
[editovat] Související odkazy
- getYear and getFullYear (quirksmode.org)
- Standard JavaScript (slunecnice.cz)
- Standard ECMAscript (slunecnice.cz)
« Předchozí Následující »