Javascript ile Browser Tipi Belirleme

 Javascript ile navigator belirleyip ona gore islem yapmak icin user-agent tag'larinda gerekli sozcuklerin varligini aramak yeterli. Ornegin Netscape'in user.agent kisminda yalnizca Mozilla, IE'ninkinde ise MSIE ve Mozilla yazilari yer alir. Bunlarin bir karakter dizisinde gecip gecmedigini ise .indexOf() ile anlayabiliriz. .indexOf() fonksiyonu / metodu / vs. belirtilen bir dizi(string) parcasinin bir karakter dizisinin neresinde gectigini bulur, ve eger o parca o dizide yoksa -1 degerini dOndUrUr.

Tipik kullanimi:
yer=navigator.userAgent.indexOf("Mozilla")

Burada eger Mozilla sozcugune rastlanmissa, pozitif bir yer belirten sayi yer degiskenine atanir. Aksi takdirde "yer" -1 degerini alir.

Kisaca, navigator.userAgent nesnesi hem Mozilla hem MSIE yazilarini icermiyor degilse ( != -1 ) browser IE'dir. Mozilaa icermiyor degilse ve MSIE iceriyor degilse de Netscape'tir. Bu ikisine birden uymayan durumlarda is ne yapacagina siz karar vermelisiniz. IE olmayan her browser Netscape uyumludur deyip isin icinden de cikilabilir mesela, hem boylece fazladan bir koSul denetiminden de kurtulunulur.

1. Ornek: hem MSIE hem Mozilla var ise IE, yoksa Netscape

if ( (navigator.userAgent.indexOf("Mozilla") != -1) &&
(navigator.userAgent.indexOf("MSIE") != -1) )
{
// Buraya IE icin yapilacaklar yazilacak
//mesela:
document.writeln("Kullanilan tarayici IE<p>");
}
else {
// Buraya da Netscape icin yapilacaklar yazilacak
//mesela:
document.writeln("Kullanilan tarayici Netscape veya Netscape uyumlu<p>");
}

Aslinda hazir ugrasiyorken biraz simariklik da yapabilmek mumkun, yukaridaki netscape icin olan kismi soyle degistirebiliriz:

else {
// Buraya da Netscape icin yapilacaklar yazilacak
//mesela:
document.writeln("Kullanilan tarayici Netscape veya Netscape uyumlu<p>");
// linux kontrolu:
if (navigator.userAgent.indexOf("Linux") != -1)
{
document.writeln("Oooo Helal!<p>Bir Linux kullanicisi... Harika!<p>");
}
}

2. Ornek: hem MSIE hem Mozilla var ise IE, MSIE yok Mozilla var ise Netscape, yoksa diger bir tarayici.

if (navigator.userAgent.indexOf("Mozilla") != -1)
{
if (navigator.userAgent.indexOf("MSIE") == -1)
{
// Buraya Netscape icin yapilacaklar yazilacak
document.writeln("Kullanilan tarayici Netscape<p>");
}
else {
// Buraya ise IE icin yapilacaklar yazilacak
document.writeln("Kullanilan tarayici IE<p>");
}
}
else {
// Buraya da diger tarayicilar vs. icin yapilacaklar konuluyor.
document.writeln("Kullanilan tarayici:" + navigator.userAgent + "<p>");
}

3. Ornek; Pratikte kullanim.

Bir baska kullanim da ornegin font buyuklukluklerini Netscape ve IE icin otomatik ayarlama seklinde olabilir. Default ayarlarla IE'de harfler netscape'tekinden daha buyuk gorunur. Bu fonsiyonla ise bir denge kurmak olasi.

function fnt(buy) {
if ( (navigator.userAgent.indexOf("Mozilla") != -1) &&
(navigator.userAgent.indexOf("MSIE") != -1) )
{
// IE icin font
buy=buy-1;
if ( buy < 0) {buy=0}
}
// Netscape icin font buyuklugu verilenle ayni
document.writeln("<font size="+buy+">");
}

Bunu ise html sayfasi icinde Su sekilde kullanmak mumkun:

<script>fnt(4);</script> merhaba</font><p>
<script>fnt(3);</script> merhaba</font><p>
<script>fnt(2);</script> merhaba</font><p>
<script>fnt(1);</script> merhaba</font><p>

Kolay gelsin.

İlker Fıçıcılar
Haziran 2000

Ana sayfaya dönmek icin buraya tıklayın
Önceki sayfa için de buraya tıklayın
Teknik sayfası için buraya tıklayın


Ilker Ficicilar
ilkerf@geocities.com