JS - Informatie over de browser |
||
|
Met behulp van JavaScript kun je bepalen welke browser de bezoeker van je pagina gebruikt en op basis daarvan een gebeurtenis laten plaats hebben. Dat kan bijvoorbeeld handig zijn als in je pagina mogelijkheden opgenomen zijn, welke niet door alle browsers ondersteund worden. Met gebeurtenissen, welke afhankelijk zijn van de browser, kun je bijvoorbeeld ook voorkomen dat bezoekers geconfronteerd worden met fouten in hun browser (zie bijvoorbeeld het onderdeel CSS en browsers). |
Informatie over de browser weergevenMet de eigenschappen appName, appVersion, appCodeName en userAgent van het navigator object kan informatie over de gebruikte browser weergegeven worden, uiteraard alleen als de browser JavaScript ondersteund. Voor de browser, waarmee deze pagina bekeken wordt, ziet de informatie er als volgt uit: |
navigator.appName: |
|
navigator.appVersion: |
|
navigator.appCodeName: |
|
navigator.userAgent: |
|
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Voor de overige eigenschappen gaat het op een vergelijkbare manier. De informatie, welke gegeven wordt door de verschillende eigenschappen, kun je in een nieuw venster bekijken voor Internet Explorer, Netscape Navigator en Opera. |
BrowsertestIn het volgende voorbeeld wordt getest, of de bezoeker een bepaalde browser gebruikt. |
Microsoft Internet Explorer 3: |
|
Microsoft Internet Explorer 4: |
|
Microsoft Internet Explorer 5.0: |
|
Microsoft Internet Explorer 5.5: |
|
Netscape Navigator 2: |
|
Netscape Navigator 3: |
|
Netscape Navigator 4: |
|
Netscape Navigator 6 Preview Release 2: |
|
Opera 3: |
|
Opera 3.5: |
|
Opera 3.6: |
|
Opera 4.0: |
|
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Voor Microsoft Internet Explorer 5.0 en 5.5 test je in navigator.userAgent op "MSIE 5.0", respectievelijk "MSIE 5.5". Omdat Opera 4 ook gebruik kan maken van de tekst "MSIE" in navigator.userAgent, moet je hier een extra kenmerk opnemen: in navigator.userAgent mag de tekst "Opera" niet voor komen. <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Zorg er voor dat de code tussen de haakjes achter het if-statement niet onderbroken wordt door een harde overgang naar de volgende regel. Om te testen of het gaat om Netscape Navigator 2, moet gebruik gemaakt worden van twee kenmerken: de naam "Netscape" in navigator.appName en de tekst "Mozilla/2" in navigator.userAgent. <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Omdat Opera 3 ook gebruikt maakt van de naam "Netscape" in navigator.appName en de tekst "Mozilla/3" in navigator.userAgent, moet voor Netscape Navigator 3 nog een derde kenmerk opgenomen worden: in navigator.userAgent mag de tekst "Opera" niet voor komen. <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Ook voor Netscape Navigator 6 Preview Release kun je dezelfde methode hanteren, alleen test je nu op de aanwezigheid van "Mozilla/5" in navigator.userAgent. Voor de definitieve versie van Netscape Navigator 6 kunnen nadere testcriteria nodig zijn. <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Omdat voor zowel Opera 3 als 3.5 in navigator.userAgent "Opera/3.0" vermeld staat, moet je ook hier een extra test opnemen: voor Opera 3 test je op de aanwezigheid van "Mozilla/3", voor Opera 3.5 op die van "Mozilla/4". <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Voor het gemak is in Opera 3.6 de waarde van navigator.userAgent gewijzigd. Er moet nu niet meer getest worden op "Opera/3.0", maar op "Opera 3". <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> In Opera 4 kan ingesteld als welke browser het programma geïdentificeerd moet worden. De waarde van navigator.userAgent heeft daardoor verschillende uitkomsten. Daarom moeten we testen op de aanwezigheid van de tekst "Opera 4" of de tekst "Opera/4" in navigator.userAgent: <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> |
Document openen afhankelijk van browserDe browsertest kun je bijvoorbeeld gebruiken om te bepalen welk document geopend moet worden. Dat kan dan een document zijn, wat speciaal is toegesneden op de mogelijkheden van de betreffende browser. In het volgende voorbeeld betreft het specifieke niet meer dan het vermelden van de naam van de browser, maar andere mogelijkheden zijn bijvoorbeeld het afhankelijk van de browser gebruiken Style Sheets en inline frames. Probeer dit voorbeeld in een nieuw venster. In de head van het document, dat geopend wordt in het nieuwe venster, staat het volgende script: <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Zorg er weer voor dat de code tussen de haakjes achter de if-statements niet onderbroken wordt door een harde overgang naar de volgende regel. Het BODY element van het document in het nieuwe venster, is als volgt opgebouwd: <BODY onload="browsertest();"> |
Algemeen script voor browsertestWanneer je vaker in een document gebruik maakt van een browsertest, dan is het wellicht handig om het volgende script als eerste in de head van het document te plaatsen: <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Omdat bovenstaande code geen onderdeel is van een functie, kunnen de verschillende variabelen (zoals OP35, NN4 en IE50) direct in andere scripts in hetzelfde document gebruikt worden, zonder de testen opnieuw te hoeven uitvoeren. Een volgend script kan er daardoor bijvoorbeeld als volgt uitzien: <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Aan het algemene browser script kun je ook nog code toevoegen om te testen of het versienummer van de browser groter of gelijk is aan een bepaald getal. In de volgende code gebeurt dat voor Netscape Navigator 3 en hoger en Microsoft Internet Explorer 4 en hoger. var NN3plus = NN && (parseInt(navigator.appVersion) >= 3); Tenslotte is het soms handig om de werking van een script te laten afhangen van het platform (Windows, Linux, Macintosh) dat de bezoeker gebruikt, bijvoorbeeld wanneer je een style sheet gebruikt met daarin vaste puntgrootten gedefinieerd. Je kunt dan aan het algemene script een platformtest toevoegen. var WIN = navigator.userAgent.indexOf("Win") != -1; Een voorbeeld van het gebruik van een algemeen script voor de browsertest, wordt gegeven bij de beschrijving van browser-specifieke stijlbladen. Inhoud Handleiding HTML Overzicht JavaScript voorbeelden Inhoud JS - Informatie over de browser
|