Fırat Esmer

ANLATILAN SENİN HİKAYENDİR - Karl Marx

Internet Explorer Compatibility View Meta Tag'i

Bugün şirkette rutin bir şekilde proje ile ilgilenirken bir sayfada javascript ile listbox'lar oluşturup, item'ların click anında değerlerini yakalayıp sql sorgusu hazırlamam gerekiyordu. Bu işlemi, kendi bilgisayarımda olmadığım için ilk önce boş bir sayfada yaptım. Eksik olup olmadığını görmek için kontrolümü ettim ve projeme dahil ettim. Fakat o da ne? Bu sefer çalışmamıştı. Ama neden? Aklıma 2 tane sorun geldi. Bunlardan ilki ya masterpage ile ilgili bir sıkıntı vardı (bunu düşünmemin sebebi, sayfanın ana şablonunun masterpage'den gelmesiydi), ikincisi de projem ile ilgili bir sıkıntı vardı ki kulağa çok saçma geliyordu. Hemen yeni bir masterpage açıp, hazırlamış olduğum sayfası içerisine yerleştirdim ve bu sefer oldu. Gözlerim, Sauron'un yüzüğü aradığı gibi hatalı kısmı aramaya başladı. Fakat hiç absürd kısım göremedim. Ne kod tarafında ne de HTML tarafında derken gözüme daha önce hiç tanınmamış bir meta tag takıldı.

 <meta http-equiv="X-UA-Compatible" content="IE=IE7" />

İçimden "bu ne ya?" dediğimi hatırlıyorum. Araştırdım ve bu meta tag'in aslında yapılmış olan sayfanın Internet Explorer 7 formatında açılmasını belirttiğini öğrendim (Compatibility View ya da Uyumluluk Modu). Benim hiç ilgimi çekmedi çünkü "bana ne?" sitenin görselinden diyordum. Ta ki bu meta tag'i kaldırana kadar. Sorunum hallolmuştu. Peki neden? Hiçbir fikrim yoktu açıkçası. Belki de Internet Explorer 7, yazmış olduğum javascript'i algılamıyordu. Bu meta tag'i kimin eklediğini öğrenmek için iş arkadaşlarımı sorguya çektiğim zaman, şirketimizin grafikerlerinden George pek de sağlıklı cevaplar vermedi. :)

Bu resim meta tag'in ekli olduğu zamanki hali.

Compatibility View Yok

Bu resim ise meta tag'in ekli olmadığı zamanki hali.

Compatibility View Var

content="IE=IE7" yerine  content="IE=IE8" de diyebilirsiniz (Internet Explorer 8 için).IE5, IE7, IE8 ve IE9 için seçenekleriniz var. Hatta en son tarayıcı versiyonuna göre ayarlamak isterseniz content="IE=Edge" yazarsınız, tekrar tekrar değiştirmekten kurtulursunuz. İstediğiniz formatı belirleyin ve <head></head> tag'leri arasına yerleştirin.

Peki her sayfanın head tag'i arasına yazmasak da, onun yerine web.config dosyasında bu işlemi tanımlasak? O da oluyor. IIS ayar kısmını 8 adımda anlatan açıklamaya buradan ulaşabilirsiniz.

Genel olarak Internet Explorer Compatibility View hakkında daha fazla bilgi almak için de buraya tıklayın.