Obiectul navigator
Cu ajutorul proprietății navigator a obiectului window se poate obține informații despre browser și sistemul de operare în care este lansat browserul. Această proprietate reprezintă un obiect de tip Navigator, care definește o serie de proprietăți și metode. Principalele proprietăți:
- appCodeName: conține numele intern de cod al browserului curent (nu este de încredere, deoarece de obicei returnează Mozilla)
- appName: conține numele oficial al browserului curent (nede încredere, deoarece fiecare browser afișează valoarea Netscape)
- appVersion: conține numărul versiunii browserului curent (nede încredere)
- battery: reprezintă un obiect de tip BatteryManager, care permite utilizarea Battery Status API pentru interacțiunea cu starea bateriei
- cookieEnabled: conține informații despre dacă fișierele cookie sunt activate sau nu
- geolocation: reprezintă un obiect de tip Geolocation, care permite utilizarea Geolocation API pentru lucrul cu geolocația
- language: conține un șir care indică limba preferată a utilizatorului. De obicei, această limbă este folosită și în interfața browserului corespunzător. Dacă limba preferată nu poate fi determinată, această proprietate conține valoarea null
- languages: conține o listă de șiruri care indică limbile preferate ale utilizatorului, iar cea mai preferată limbă se află în prima poziție (ceea ce corespunde limbii din proprietatea language)
- mimeTypes: conține o listă de tipuri MIME suportate de browser
- onLine: o valoare booleană care indică dacă browserul este conectat la internet sau nu
- platform: conține informații despre sistemul de operare folosit (nede încredere)
- plugins: conține o listă de plugin-uri suportate de browser
- product: conține numele produsului browserului curent. Cu toate acestea, pentru compatibilitatea inversă, fiecare browser returnează valoarea Gecko
- productSub: conține subeticheta browserului curent (20030107 sau 20100101)
- serviceWorker: reprezintă un obiect ServiceWorkerContainer, care permite lucrul cu API-ul Service Worker
- userAgent: conține un șir care identifică browserul folosit (de asemenea, nede încredere)
- vendor: conține informații despre producătorul browserului (una dintre valorile "Apple Computer, Inc.", "Google Inc." sau un șir gol)
- vendorSub: destinat pentru obținerea de informații suplimentare despre producătorul browserului, dar întotdeauna conține un șir gol
Trebuie de menționat că obiectul Navigator are o mulțime de proprietăți pentru determinarea tipului de browser, cu toate acestea, niciuna dintre ele nu poate fi considerată fiabilă.
Dacă în trecut se folosea frecvent proprietatea userAgent pentru identificarea browserului, acum această proprietate pentru doi browsere diferiți poate returna aceleași valori. Prin urmare, aceasta de asemenea nu poate fi considerată fiabilă.
Utilizarea unor proprietăți pe exemplul browserului Google Chrome pe platforma MacOS Intel x86-64:
console.log(navigator.appCodeName); // Mozilla
console.log(navigator.appName); // Netscape
console.log(navigator.appVersion); // 5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
console.log(navigator.product); // Gecko
console.log(navigator.productSub); // 20030107
console.log(navigator.vendor); // Google Inc.
console.log(navigator.vendorSub); // [șir gol]
console.log(navigator.userAgent); // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36
console.log(navigator.platform); // MacIntel
console.log(navigator.languages); // lista limbilor suportate
console.log(navigator.plugins); // lista plugin-urilor suportate