2012-12-13 19 views
5

Büyük bir projede çalışıyorum ve kullanıcının IE'de uyumluluk görünümünü kullanıp kullanmadığını belirlemeliyiz.
Bunu yapmak için bu kodu kullanıyorum. Bu büyük çalışmaktadırIE9 Intranet siteleri için Uyumluluk Modu yanlış Kullanıcı Aracısı Dizesi

var agentStr = navigator.userAgent; 
var mode = null; 
if (agentStr.indexOf("Trident/5.0") > -1) { 
    if (agentStr.indexOf("MSIE 7.0") > -1) 
     mode = "IE9CV"; 
    else 
     mode = "IE9"; 
} else if (agentStr.indexOf("Trident/4.0") > -1) { 
    if (agentStr.indexOf("MSIE 7.0") > -1) 
     mode = "IE8CV"; 
    else 
     mode = "IE8"; 
} else 
    mode = "IE7"; 

, sorun şudur:
1 - Bir İNTRANET ortamında, seçenek "Uyumluluk Görünümü Ekran intranet siteleri" müşterinin tarayıcısında kontrol edilir ve yapabileceğim bir şey yok hakkında böyle
Compatibility View

2 - Orada uyumluluk görünümünü saptamak için komut dosyası için hiçbir sorun olacağını ANCAK ben aldığım kullanıcı aracısı aşağıda bu bir IE 9 sayfa yüklemeleri eğer bu yüzden, bilmiyorum uyumluluk görünüm

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) 

çok aynı sayfa

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) 

IE9

yüklü eğer IE9 Uyumluluk Görünümü İçin
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) 

aldığına ruh iken olurdu olarak.
Bu son sonucu, IE9 Uyumluluk Görünümü'nü (beklendiği gibi) FORCE (GÜÇ) olarak gördüğümde, ancak tek başına yüklendiğinde, IE9 standardının bana göndereceği gibi yalnızca aynı kullanıcı aracısını alıyorum. Dolayısıyla, kullanıcının IE9 standart görünümüne veya uyumluluk görünümüne sahip olup olmadığını belirleme yöntemini anlayamıyorum.

Kendimi netleştirdiğimi bilmiyorum, ancak büyük bir IE hatası gibi görünüyor.
Nasıl devam etmeliyim? Bu sorunu da yaşayan var mı?

Bu ekran durumları simüle edilmektedir: Compatibility View

+0

Çok garip ... sen aslında "Ekran intranet siteleri" işaretli olan Uyumluluk Modu bunu gösteriyor emin misin? Haklı olduğunuz için, MSIE 7.0’ı görüntülüyor olmalı; IE9 Comp Mode için Trident/5.0; '.Sadece soruyorum çünkü eğer UAgent bunu gösteriyorsa, aslında aslında Tam Mod'da değil. –

+0

mcpDESIGNS benim son düzenlemeyi kontrol ... Ben durumları simüle bir görüntü ekledik ve yanıtlara ben bu @Christoph =/ – rafaces

+0

yinelenen ama kendi içinde farklı bir sorun değildir olsun. Son zamanlarda uyumluluk ile uğraşıyorum ve bu konu hakkında bile bilmiyordum. Bu garip Intranet onay kutusu sorunuyla ilgili herhangi bir tavsiyede bulunup bulunmadığını görmek için Microsoft ile iletişime geçmeyi denediniz mi? Ben UASTRING doğru olmadığı sürece, ben hiç, hatta bunu anlamaya çalıştım moderatörler Yayının tamamını okumadım affraid –

cevap

-1

Uyumluluk modu hemen hemen her yerde bir acıdır! Ancak, tarayıcı aracısını, kolayca aldatılmış olabileceği ve genel olarak güvenilir olamayacağından tespit etmemeye çalışın, bunun yerine 'özellik algılama'yı deneyin. İhtiyaçlarınız ise uyumluluk görünümü ile siteye erişim kullanıcıları kullanabileceğiniz etkin önlemek için:

bazı kütüphanelerine bu

DÜZENLEMEYİ yapmak için kullanabileceğiniz vardır Bu modu devre dışı bırakmak için <META> tag/HTTP header.. Daha fazla bilgi için buraya bakın.

http://blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx

http://blogs.msdn.com/b/ie/archive/2008/06/10/introducing-ie-emulateie7.aspx

+0

Ne demek istediğini biliyorum kalır ve bu mükemmel bir çözüm, ** ama ** bu bir oluşturmadığını ifade Analistlerden, ** Uyumluluk Modunu ** algıladığım ve kullanıcının Uyumluluk Görünümü etkinleştirilmişse erişimi engellediğidir. – rafaces

+0

Güncellemem hakkında etiketi kontrol edin – BuddhiP

+0

Tarayıcıyı IE9'a ayarlamak için zaten kullanıyorum: Sorun, Uyumluluk Görünümü Ayarlarının (Intranet'te), Davranış Modundaki davranışı geçersiz kılmasıdır. – rafaces

İlgili konular