V sucasnej dobe existuju 2 graficke prehliadace stranok, ktore podporuju JavaScript. Microsoft Internet Explorer a Netscape Navigator. S podporou JavaScriptu zacal Netscape a neskor doslo k implementovaniu JavaScriptu aj do Internet Explorera. Avsak podpory JavaScriptu u obidvoch prehliadacoch sa od seba lisia, tzn. ze skript, ktory bezchybne funguje v Netscape Navigatore nemusi byt plne funkcny aj v Internet Exploreri a naopak.
Nastastie obidva prehliadace podporuju objekt navigator, pomocou ktoreho je mozne urcit nazov prehliadaca, jeho verziu, na ktorej platforme bezi a taktiez aj oznacenie verzie kompatibility.
Na nasledujucom priklade si ukazeme, co je vsetko mozne zistit o prehliadaci, ktorym prave prezerate stranku.
Zdrojovy tvar:
<html> <body> <!-- document.write('<h4>MENO PREHLIADACA: '+navigator.appName+'<br>'); document.write('VERZIA: '+navigator.appVersion+'<br>'); document.write('KODOVE OZNACENIE: '+navigator.appCodeName+'<br>'); document.write('UPLNE OZNACENIE: '+navigator.userAgent+'</h4>'); // --> </body> </html> |
To, ze ani dokonca podpora HTML u oboch prehliadacov nie je identicka, to je uz zname dlhsiu dobu. Ako je mozne navrhnut stranky tak, aby vyzerali idealne pre oba prehliadace ? Jednoducho. Vyuzijeme poznatky z minulej sekcie.
Princip je jednoduchy. Po identifikacii prehliadaca dojde k nacitaniu stranky optimalizovanej pre ten prehliadac. Samozrejme, skript musime zabezpecit tak, aby aj uzivatelia, ktorych prehliadach nepodporuje JavaScript mali moznost nahliadnut na vase stranky. I ked v sucasnej dobe iba 2 prehliadace podporuju JavaScript, moze sa stat, ze v buducnosti bude medzi nimi i 3, a preto aj tuto moznu situaciu treba osetrit.
Zdrojovy tvar:
<html> <head> <script language="JavaScript"> a="9k-p1.html"; if (navigator.appName=="Netscape") a="9k-p2.html"; if (navigator.appName=="Microsoft Internet Explorer") a="9k-p3.html"; </script> </head> <body onLoad="location=a;"> </body> </html> |
Predstavte si, ze ste spravcom velkeho poctu stranok a vyskytne sa vam horeuvedeny problem. Riesit to predchadzajucim sposobom by bolo asi nehospodarne co sa tyka poctu suborov. Da sa to riesit aj nasledove.
Princip spociva v tom, ze dochadza k vykonavaniu iba urcitych casti skriptu vo vnutri HTML dokumentu. To sa da zabezpecit velmi lahko s pouzitim prikazu podmienky if. Takymto sposobom je realizovana aj titulna stranka JavaScript DESTINATION, kde sa nezobrazuje textove okienko v pripade, ze pouzivate nizsiu verizu prehliadaca.
Zdrojovy tvar:
<HTML> <BODY> <h3 align="center">Spolocna cast dokumentu pre oba prehliadace <br> <BR> <SCRIPT LANGUAGE="JavaScript"> <!-- compat=false; if (navigator.appName=="Netscape") compat=true; if (compat) { document.write("-- Vykonanie skriptu pre NETSCAPE"); } else { document.write("-- Vykonanie skriptu pre EXPLORER"); } // --> </SCRIPT> <BR> <A HREF="9k.html#vos">Navrat na prirucku</a> </H3> </BODY> </HTML> |