Herkese merhaba,
Microsoft, IE 8.0' ı kullanıcıların hizmetine sundu. Özellikle yazılım sektöründe ürünler kullanıcılara sunulmadan önce hatta beta versiyonlarıyla kullanıcılara sunulmaya başlandığında bile uzun uzun testlere tabi tutuluyor. Ancak yine ufak tefek eksiklik ve hatalar gözden kaçabiliyor. İşte bu yazıda da IE 8.0' daki küçük bir hatadan ve bunu gidermenin yollarından bahsedeceğim.
ASP.Net ile geliştirdiğiniz bir web uygulamasında asp:menu kontrolünü kullandığımızda bu kontrolün IE8.0 düzgün görünmediğini farkedeceksiniz. Karşılaşmayanlar için hatanın görünümü ile ilgili ekran görünümlerini vereyim.
| Menünün Normal Görünümü |
Menünün IE 8.0 daki Hatalı Görünümü |
 |
 |
Gördüğünüz gibi menünün Dynamic Item ları yani fare ile üzerine gelindiğinde açılan alt elemanlar beklendiği gibi görünmüyor. "Personel İşlemleri" menüsü altındaki "Yeni Personel" ve "Personel Detay Bilgileri" alt menüleri görünmüyor.
Bunun sebebi IE 8.0' ın dynamic menu item elemanına ait html i beklendiği gibi parse etmemesi. Bu eleman ait yanlış bir z-index değeri kullanması da diyebiliriz.
Kullanıcılar(ziyaretçiler) bu hatayı IE8.0' daki adres alanının hemen sağında bulunan "Uyumluluk Görünümü" düğmesine tıklayarak giderebilirler. Ancak bu sadece o kullanıcı için geçerli ve geçici bir çözüm olacaktır. Sorunu çözmek için biz developerların yapabileceği şeyler ise şunlar;
İlk çözüm yolu hatanın müsebbibi Microsoft' tan geliyor :) Mücrosoft bu hata ile ilgili bir yama çıkarmış durumda. Hata ve yaması ile ilgili detaylı bilgi için
http://support.microsoft.com/kb/962351 adresini ziyaret edin. Bu sayfada yer alan resolution bölümünde, hatanın Windows Server 2003 ve Windows Vista~ Server 2008 için giderilmesini sağlayan HotFix linklerini bulabilirsiniz.
Şimdi de kendi HotFix' imi kendim yaparım diyenler için biz developerların yamasını görelim. Çözümü sunan Sakya' ya teşekkürler. Yapılacak iş çok basit kullandığımız asp:menu kontrolünün DynamicMenuStyle' ın CssClass özelliğini kullanarak z-index belirlemek :)
.IE8_DynMnuItm
{
z-index: 1000;
}
Şimdi geriye sadece menude bu css classını kullanmak kaldı.
Hepsi bu kadar. Hoşçakalın.