Informatie over de browser en over de huidige web-pagina
Soms is het handig om wat meer te weten over de browser die wordt gebruikt of over de pagina die wordt weergegeven. Met JavaScript heb je daarvoor aardig wat mogelijkheden. Hieronder vind je een paar voorbeelden.
- Browsernaam, -versie en -type
Code:document.write("U gebruikt nu: " + navigator.appName + " " + navigator.appVersion + " " + navigator.appCodeName);
Resultaat:
- Huidige web-pagina, versie 1
Code:document.write("Huidige Web-pagina is " + document.URL);
Resultaat:
Zie ook de opmerking bij versie 2. - Huidige web-pagina, versie 2
Code:document.write("Huidige Web-pagina is " + document.location);
Resultaat:
JavaScript versie 1.0. Afgeraden in versie 1.1, huidige status: document.location.href is identiek aan document.URL. Als je deze pagina "lokaal" bekijkt kan er verschil zijn met versie 1. - Pagina die deze pagina heeft aangeroepen
Code:document.write("Huidige Web-pagina is aangeroepen door " + document.referrer);
Resultaat:
Als je deze functie "lokaal" gebruikt staat hier waarschijnlijk niets.
Als je deze pagina via internet bekijkt (of met behulp van je eigen webserver) werkt het -meestal- goed.
Gebleken is dat document.referrer soms een lege string teruggeeft (dus géén referrer) terwijl er wel een referrer is. Dit gebeurt als een pagina wordt geopend met target="name", terwijl een venster, tabblad of frame met die name niet bestaat.
De oorzaak is te herleiden naar de manier de browsers met 'referrer' omgaan. - Cookies
Code:if (navigator.cookieEnabled == 0)
Resultaat:
document.write("Deze browser accepteert geen cookies");
else
document.write("Deze browser accepteert cookies");
- Titel van het huidige document
Code:document.write("Titel van dit document: <br>" + document.title);
Resultaat: - Aantal (inline-)frames in dit venster
Code:document.write("Aantal (inline-)frames in dit venster: " + window.parent.length);
Resultaat: - Namen van de frames
Code:document.write("Naam van het eerste frame: " + window.parent.frames[0].name + "<br>");
Resultaat:
document.write("Naam van het tweede frame: " + window.parent.frames[1].name + "<br>");
.
.
.
document.write("Naam van het zesde frame: " + window.parent.frames[5].name);
Dit had ook gewoon in een loop gekund. Voor dit voorbeeld is dat echter niet handig.
Natuurlijk staat elke JavaScript opdracht op één regel. - Documenten in de frames
Code:document.write("Document in het eerste frame: " + window.parent.frames[0].location + "<br>");
Resultaat:
document.write("Document in het tweede frame: " + window.parent.frames[1].location + "<br>");
.
.
.
document.write("Document in het zesde frame: " + window.parent.frames[5].location);
Dit had ook gewoon in een loop gekund. Voor dit voorbeeld is dat echter niet handig.
Natuurlijk staat elke JavaScript opdracht op één regel.
Opmerking:
Natuurlijk gebruik je script tags rondom de document.write-opdrachten:
<script >
document.write(.........);
</script>
Opmerking:
Als je wilt weten of een eigenschap bestaat, kun je overwegen om Modernizr
te gebruiken. Zie ook het item Modernizr als browser sniffer.