Kendini kullanıcı aracısı dizesi aracılığıyla IE7 veya IE8 olarak tanımlayan tarayıcının gerçekten bu tarayıcılar mı yoksa 7 veya 8 uyumluluk modunda IE9 mu olduğunu bilmem gerekiyor.
Kullanıcı aracısı dizesinde görebildiğim kadarıyla, IE7 uyumluluk modunda bir IE9, gerçek bir IE7 ile aynı dizeyi sağlar. Kılık değiştirmiş "gerçekten" IE9 olup olmadığını görmek için test edebileceğim fazladan bir özellik / öğe / nesne var mı?
Betiğimin yüklendiği sayfa tuhaflıkları zorluyor veya belirli bir ayarı zorluyor olabileceği için belge modunun yardımcı olmayacağını varsayıyorum.
IE9'un 7, 8 veya 9 modunda olup olmadığına bakılmaksızın var olan ve test edilebilir bazı özelliklere sahip olacağını umuyorum.
Eklemek için düzenlendi…
Tamam, şimdi nerede yanlış yaptığımı görüyorum. "Tarayıcı Modu" açılır menüsünü kullanıyordum ve onu IE8 ve IE7'ye geçiriyordum ve bunun sırasıyla "IE8 uyumluluk modu" ve "IE7 uyumluluk modu" olduğunu düşünüyordum. Bu elbette doğru değil. Geliştirici araçlarının Tarayıcı modu gerçekten onu eski tarayıcılara "benzemek" için değiştiriyor, bu nedenle orijinal useragent dizelerinin rapor edilmesi yalnızca doğru.
Tarayıcı modunu IE9 veya IE9 uyumluluğunda bırakır ve bunun yerine belge modu açılır varyantlarını denersem, aslında 8 kombinasyonun tamamında (iki tarayıcı modu ve 4 belge modu) "Trident / 5.0" var. IE7 ve IE8 tarayıcı modunu seçmekten kaçınmam gerekiyor çünkü bunlar gerçekten (simüle edilmiş) IE7 ve IE8.
Bu nedenle, bir sayfanın, geliştirici olmayan bir kullanıcının, bir meta etiketin veya Microsoft'un uyumluluk listesinin IE9'u bu tanımlanamaz duruma sokması mümkün değildir.
Sadece kullanmak if(navigator.userAgent.indexOf("Trident/5")>-1)
yeterli olacaktır.
Merak etmeyin, bu stiller, biçimlendirme, mantık veya sayfa içeriği için değildir. Bu şeyler için özellik tespitini kullanıyorum. Sadece IE9'u (hangi modda olduğuna bakılmaksızın) tespit etmem ve bununla ilgili sayfa dışı içerik kararı vermem gerekiyor.
Önerileriniz ve bağlantılarınızla beni yanıta yönlendirdiğiniz için teşekkür ederiz.