JavaScript – Tarayıcı ve Sistem Özellikleri

1 Mayıs 2020 tarihinde Emre Can ÖZTAŞ tarafından paylaşıldı.

JavaScript ile kullanıcının; kullandığı tarayıcı ve sistemin özelliklerini anlayarak, kullanıcıya daha iyi bir deneyim sunmak oldukça mümkün. Örneğin; web sitenizde kullandığınız bazı bileşen veya materyallerin, farklı sistem ve tarayıcılarda verdiği tepkiler de doğal olarak farklı olacaktır. Aslında bu işi, Faruk ATEŞ tarafından yazılan; Modernizr kütüphanesi ile de yapabilirsiniz. Fakat sisteminize ekstra bir yük getirmeden de kendiniz yazacağınız bir kaç satır ile çözebilirsiniz.

JavaScript ile kullanıcının tarayıcı ve sistem özelliklerini öğrenmek için kullanmamız gereken yapı: navigator. navigator, bir nesne. Bu nesne doğrudan kullanıbileceği gibi window.navigator şeklinde de kullanılabilir.

Bu yazıda; navigator nesnesinin sahip olduğu özellikler ve metotlar yardımı ile bir kullanıcının tarayıcı ve sistem özelliklerini öğrenmekten bahsedeceğiz.

Özellikler

userAgent

userAgent metodu, kullanıcının tüm özelliklerini verir.

window.navigator.userAgent
// veya
navigator.userAgent

Yukarıdaki satırımız ile uzun bir değer elde edebiliriz. Örneğin ben de verdiği çıktı aşağıdaki gibidir.

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0

Bu çıktıdan da anlaşılacağı üzere; 64 bitlik Windows 10 işletim sistemi üzerinde çalışıyor ve Firefox tarayıcı kullanıyorum. Chrome, Opera, Safari ve diğer herhangi bir tarayıcıda da bu çıktıyı deneyimleyebilirsiniz ya da User Agent String adlı web sitesinden bilinen tüm tarayıcıların userAgent çıktısını inceleyebilirsiniz.

Burada belirtmek istediğim bir durum var. Denediğiniz tarayıcıların neredeyse tamamında (spesifik bir durum yoksa); userAgent çıktısında Mozilla ibaresini görürsünüz. Bunun da tabiki tarihi bir nedeni var. Bu nedenden kısaca bahsetmek istersek; sunucuların, istekte bulunan tarayıcıları Mozilla uyumlu olup olmadığı ile ilgilenmesi. Yani; Mozilla istek yapıyorsa, istek yapılan sayfayı rahatlıkla çalıştırabilir demek gibi bir şey. Tüm tarayıcılarda Mozilla ibaresinin bulunması, bu tarayıcıların Mozilla tabanlı olduğunu göstermez. Tam tersi; diğer tarayıcıların, sunuculara karşı kendini Mozilla gibi göstermesiyle alakalı bir durumdur. Mozilla konusu oldukça uzun, yani tam bir yazı konusu. Belki bu konudan ileri ki bir yazıda bahsedebilirim ama siz şuan detaylı bilgi almak isterseniz; WebAIM sitesine bir göz atabilirsiniz.

appCodeName

Tarayıcının, kendi içerisindeki kod adını verir. Yani; Mozilla ibaresi gözükecektir. Bir üst başlık olan userAgent kısmında detaylı olarak bahsetmiştik.

window.navigator.appCodeName
// veya
navigator.appCodeName
appName

Tarayıcının, kendi içerisindeki adını verir.

window.navigator.appName
// veya
navigator.appName

Burada da şöyle bir durum var; tarayıcıların tümünde yukarıdaki satırların çıktısı; Netscape olacaktır. Bunun belirli bir nedeni yok. Buradaki bir soruya yanıt veren Johnny Stenbäck (Netscape ve Mozilla’nın efsanevi geliştiricisi) de aynı ifadeyi kullanmış ve userAgent başlığı altındaki bahsettiğimiz, her tarayıcıda çıkan Mozilla ibaresine bağlamış ve Netscape = Mozilla demiştir. Fakat bu konudaki en doğru açıklama bana göre; Microsoft tarafından yapılmış ve “HTML5 standardını yansıtmak ve diğer tarayıcıların davranışlarını eşleştirmek için.” denilmiştir.

appVersion

Tarayıcının, kendi içerisindeki sürüm numarasını verir.

window.navigator.appVersion
// veya
navigator.appVersion
cookieEnable

Tarayıcının, cookie yani çerezlere izin verilip verilmediğini belirtir.

window.navigator.cookieEnabled
// veya
navigator.cookieEnabled
Yukarıdaki satırlarımız; boolean değer verir.
language

Tarayıcının, dilini verir.

window.navigator.language
// veya
navigator.language

Çıktımız da; tr-TR, zh-CN, en-US gibi kullandığımız dil şeklinde olacaktır.

languages

Kullanıcının, tercih ettiği dilleri verir.

window.navigator.languages
// veya
navigator.languages

Örneğin bendeki çıktı; tr-TR,tr,en-US,en şeklinde.

onLine

Tarayıcının çevrimiçi olup / olmadığını verir.

window.navigator.onLine
// veya
navigator.onLine

Yukarıdaki satırlarımız; boolean değer verir.

platform

Tarayıcının üzerinde çalıştığı platformu verir.

window.navigator.platform
// veya
navigator.platform

Çıktımız da; Win32, MacIntel, Linux i686 vs. gibi kullandığımız platform şeklinde olacaktır.

product

Tarayıcının motor ya da render eden diyebileceğimiz yapının adını verir.

window.navigator.product
// veya
navigator.product

Burada da şöyle bir durum var; tüm modern tarayıcılarda bu çıktının Gecko olması. Daha önce bahsettiğimiz gibi bu durum da tarayıcıların uyumu için uygulanmış bir durumdur.

productSub

Tarayıcının motor ya da render eden diyebileceğimiz yapının sürüm numarasını verir.

window.navigator.productSub
// veya
navigator.productSub
Örnek Kullanım

Buraya kadar anlatmaya çalıştığımız özellikleri toparlayarak bir örnek üzerinde göstermeye çalışalım.

<script>
    document.writeln(
        navigator.userAgent + '<br>'
        + navigator.appCodeName + '<br>'
        + navigator.appName + '<br>'
        + navigator.appVersion + '<br>'
        + navigator.cookieEnabled + '<br>'
        + navigator.language + '<br>'
        + navigator.languages + '<br>'
        + navigator.onLine + '<br>'
        + navigator.platform + '<br>'
        + navigator.product + '<br>'
        + navigator.productSub
    );
</script>

Benim çıktım aşağıdaki gibidir.

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0
Mozilla
Netscape
5.0 (Windows)
true
tr-TR
tr-TR,tr,en-US,en
true
Win32
Gecko
20100101

Metodlar

javaEnabled()

Tarayıcınızda, Java’nın etkin olup olmadığını belirtir.

window.navigator.javaEnabled()
// veya 
navigator.javaEnabled()

Yukarıdaki satırlarımız; boolean değer verir.

taintEnabled()

JavaScript 1.2 tarafından kullanılan bir güvenlik yöntemidir. Şuan kullanılmıyor ve yakın zamanda kaldırılması bekleniyor. Dolayısıyla; bu metod her zaman false dönecektir.

window.navigator.taintEnabled()
// veya
navigator.taintEnabled()
Örnek Kullanım

Buraya kadar anlatmaya çalıştığımız özellikleri toparlayarak bir örnek üzerinde göstermeye çalışalım.

<script>
    document.writeln(
        navigator.javaEnabled() + '<br>'
        + navigator.taintEnabled()
    );
</script>

Benim çıktım aşağıdaki gibidir.

false
false

Kategoriler: [JavaScript] Etiketler: #browser #naviagator #user-agent

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

*
*

This site uses Akismet to reduce spam. Learn how your comment data is processed.