Internet Explorer 8.0 ile beraber "Compatibility View" ve web sitelerinin uyumluluk ayarları.

0 dakikada yazıldı

15088 defa okundu

Düzenle

Internet Explorer ile diğer web tarayıcıları arasında kod uyumsuzluk
sorunları web programcıları olarak hepimiz biliyoruz. Hazırladığımız
siteleri tek tek farklı tarayıcılarda test etmek zorunda olmak ve
tarayıcıya özgü farklı kodlar yazmak belki de işimiz en sıkıcı
noktalarından biriydi. İşte bu soruna artık bir nokta koymak adına
Internet Explorer 8.0 ile beraber artık IE tüm standartlara uygun
hareket ediyor. Tabi bu gelişme içerisinde bulunduğum durumunda bizim
için "yeni sorunlar" anlamına geliyor. Eskiden IE 7 ve öncesi
tarayıcılara özel olarak hazırladığımız kodlar artık IE 8.0 içerisinde
aynı şekilde çalıştırılmayacak ve bir anda tüm sitelerin görsellikleri
bozulacak.

Compatibility View

Internet Explorer 8.0 Beta 2 ile beraber aslında Beta 1'de de "Emulate
IE7" düğmesi aracılığı ile ulaştığımız eski tarayıcı motoru hala
geliyor. Bunun nedeni eski sitelerin eski tarayıcı motoru ile
gösterilmesinin şart olması. Bir anda tüm sitelerin yeni motora uygun
şekilde hazırlanması mümkün değil. Beta 2 ile beraber gelen yenilik bu
sistemin "Compatibility View" adı altında farklı bir işlevsellik ile
karşımıza çıkması. Artık IE8.0 eski sistem için hazırlanmış siteleri
algılayıp kullanıcıyı uyarabiliyor ve farklı tarayıcı motorları arasında
geçiş tarayıcının kapatılıp tekrar açılmasını gerektirmiyor.

"Compatibility View" düğmesi.
"Compatibility View" düğmesi.

"Compatibility View" düğmesine basarak eski standartlara göre açtığınız
bir web sitesiyle ilgili ayarı IE 8 saklayarak bir dahaki sefere aynı
siteyi ziyaret ettiğinizde otomatik olarak "Compatibiltiy View" seçeneği
aktif hale getiriyor. Şu an için Beta 2 içerisinde internet üzerinden
açılan tüm siteler normal modda çalışırken intranet üzerinden açılan tüm
siteler ise otomatik olarak "Compatilibity View" modunda açılıyor.
Burada önemli olan bir diğer nokta da User Agent bilgisi. Özellikle
istatistik sistemleri için ASP.NET tarafından tarayıcının sürüm
bilgisinin alındığı durumlarda unutmamak gerek ki IE 8.0 "Compatibility
View" içerisindeyse sunucuya User Agent olarak IE 7 bilgisi
gönderecektir.

Hangi sitelerin nasıl gösterileceğine ayrıca Tools menüsünden
"Compatibility View Settings" kısmından ulaşabilirsiniz. Buradan
ister tüm sitelerin IE 7 gibi gösterilmesini veya sadece adresini
ilettiğiniz sitelerin IE 7 olarak açılmasını sağlayabilirsiniz.

Hangi sitelerinde "Compatibility View" modunda açılacağını belirleyebiliyorsunuz.
Hangi sitelerinde "Compatibility View" modunda açılacağını
belirleyebiliyorsunuz.

Sitemizi nasıl ayarlarız?

Tavsiye edilen tabi ki tüm sitenizi gözden geçirerek IE 8'e uygun
şekilde gerekli düzenlemeleri yapmanız. Fakat bu süreçte hızlı bir
adaptasyon sağlamak için isterseniz sitenizin IE 8 içerisinde otomatik
IE 7 motoru ile, yani "Compatibility View" içerisinde açılmasını da
sağlayabilirsiniz. Bunun için iki seçeneğiniz var;

Eğer tüm site bazında bu işlemi yapmak istiyorsanız HTTP Header olarak
aşağıdaki kodu kullanabilirsiniz;

X-UA-Compatible: IE=EmulateIE7

Sitenizdeki sadece bir sayfanın bu modda çalıştırılmasını istiyorsanız,
bu sefer de Meta Tag'larından faydalanabilirsiniz;

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

IIS 7.0 üzerinde bir site için genel HTTP Header tanımlamak için
aşağıdaki kodu Web.Config dosyasına koymanız yeterli olacaktır.

<system.webServer>

    <httpProtocol>

        <customHeaders>

            <add name="X-UA-Compatible" value="IE=EmulateIE7" />

        </customHeaders>

    </httpProtocol>

</system.webServer>

Peki sitenizi ilk başta IE7 moduna göre çalışacak şekilde ayarladınız ve
"Compatibility View" içerisinde gösterildi. Tüm istemcilerde artık
siteniz bu modda gösterilecek şekilde kaydedildiği için IE8.0 ile ilgili
uyumluluk sorunlarınızı halletseniz ve HTTP header bilgisi ile meta
tagları kaldırsanız da herkes hala IE 7.0 modunda sitenizi ziyaret
etmeye devam edecektir. Bunu aşmanın yolu ise tüm istemcileri IE 8.0
modunda çalışmaya zorlamaktan geçiyor.

X-UA-Compatible: IE=EmulateIE8

Yukarıdaki gördüğünüz şekilde ister HTTP Header ayarlayın ister meta
taglar kullanır hiç fark etmez. Artık siteniz kesinlikle IE8.0 modunda
gösterilecek ve istemcilerde kullanıcılar isteseler de "Compatibility
View" modunu aktif hale getiremeyecekler. Eğer siteniz daha öncesinde
istemcide "Compatibility View" ile gösterilecek siteler listesinde yer
alıyorduysa IE 8.0 tarafından otomatik olarak o listeden de
silinecektir.

Hepinize kolay gelsin.