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, Mozilla, 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: |
|
Microsoft Internet Explorer 6: |
|
|
|
Mozilla 1.0: |
|
|
|
Netscape Navigator 2: |
|
Netscape Navigator 3: |
|
Netscape Navigator 4: |
|
Netscape Navigator 6: |
|
Netscape Navigator 7: |
|
|
|
Opera 3: |
|
Opera 3.5: |
|
Opera 3.6: |
|
Opera 4: |
|
Opera 5: |
|
Opera 6: |
|
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
Voor Microsoft Internet Explorer 5.0, 5.5 en 6.0 test je in navigator.userAgent op "MSIE 5.0", respectievelijk "MSIE 5.5" en "MSIE 6.0". Omdat Opera ook gebruik kunnen maken van dit kenmerk, moet je een extra test 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. Voor Netscape Navigator 4 test je in navigator.appName op "Netscape" en in navigator.userAgent op "Mozilla/4". Omdat Opera ook gebruik kan maken van deze kenmerken, moet je weer een extra test opnemen: in navigator.userAgent mag de tekst "Opera" niet voor komen. <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Voor Netscape Navigator 6 test je op de aanwezigheid van "Mozilla/5" en "Netscape6" in navigator.userAgent. De tekst "Opera" mag ook hier niet in navigator.userAgent voor komen. <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> Voor de browser Mozilla 1 moet in navigator.userAgent "Mozilla/5" wel voorkomen, maar "Netscape" en "Opera" juist niet. Om (toekomstige) verwarring met nieuwere versies van Internet Explorer te voorkomen controleer je of "Gecko" in navigator.userAgent voorkomt. Verder wordt een controle op het versienummer toegevoegd. <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> In Opera 4 en hoger kan de gebruiker instellen als welke browser het programma geïdentificeerd moet worden. De waarde van navigator.userAgent heeft daardoor verschillende uitkomsten. Voor Opera 4 moeten we daarom testen op de aanwezigheid van de tekst "Opera 4" of de tekst "Opera/4" in navigator.userAgent, voor Opera 5 op "Opera 5" of "Opera/5" en voor Opera 6 op "Opera 6" of "Opera/6". <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 wordt slechts de naam van de browser vermeld, maar meer voor de hand liggende mogelijkheden zijn bijvoorbeeld het afhankelijk van de browser gebruiken van 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 een script waarin achtereenvolgens getest wordt of het gaat om een bepaalde versie van Microsoft Internet Explorer, Mozilla, Netscape Navigator, of Opera. Een klein deel van het script wordt hierna weergegeven. het volledige script kun je in een nieuw venster bekijken. <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">
var IE4plus = IE && (parseInt(navigator.appVersion) >= 4);
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.
Laatste wijziging 23 juli 2002 |