2014-07-25 73 views
6

Internet Explorer'ın uyumluluk modunu kapatmasını ve IE'nin en son sürümünü kullanmasını zorunlu kılmak için bir web.config ayarı içeren bir .NET uygulamasına sahibim. kullanılabilir:Belirli sayfalar ve çerçeveler için web.config dosyasında X-UA Uyumlu ayarını geçersiz kıl

<system.webServer> 
    <httpProtocol> 
    <customHeaders> 
     <add name="X-UA-Compatible" value="IE=Edge" /> 
    </customHeaders> 
    </httpProtocol> 
</system.webServer> 

Ancak, bu uygulama Uyumluluk modu gerektiren eski bir sayfa içerir. Benim testimde, sadece X-UA-CompatibleIE=5 olarak ayarlandığında düzgün görüntülenecektir.

Tek bir sayfa için web.config ayarını geçersiz kılmanın bir yolu var mı? çalışmamış denedim çok şey arasında

:

sayfanın kendisinde <meta http-equiv="X-UA-Compatible" content="IE=5" /> dahil
  • , yanıt başlıkları için X-UA-Compatible:IE=5 ekleme <head>
  • sonraki ilk etiket olarak. Ne yazık ki, aynı zamanda X-UA-Compatible:IE=Edge başlığını gönderir ve bir 'kazanır'.
  • <!DOCTYPE >'un değiştirilmesi. Tüm çeşitli seçenekleri denedim.
  • DOCTYPE
  • 'dan önceki bir yoruma ekleme Sayfanın standartlara uygun olarak yeniden yazılması. Bu açıkçası en iyi çözümdür, ancak söz konusu sayfa karmaşık bir haritalama uygulamasıdır ve yeniden yazma birkaç ay sürecektir.

Güncelleme
Bunu denilen
"karmaşık bir haritalama uygulaması" dedim gerekirdi "çerçeveler ve tablolar bir fare yuvası." Çerçeveler bölümünün çözüme uygun olduğu ortaya çıkıyor.

+1

Başlıkları koleksiyondan ikinci eklemeden önce varolan X-UA Uyumlu üstbilgiyi kaldırmayı denediniz mi? Ayrıca doctype'ı tamamen kaldırmayı denediniz mi? –

+0

Daha önce bu iki öneriyi denedim, ancak üstbilgileri temizlemek için önerileriniz tüm çerçeveleri aynı şeyi denemeye teşvik etti, teşekkürler! – xcer

cevap

8

Sonunda yaklaşık (bu sayfa için çerçeve kümesinin parçası olan her sayfanın) (Page_Load bu kodu koyarak sabit bu var toplam düzine sayfalar).

Response.ClearHeaders(); 
Response.AddHeader("X-UA-Compatible", "IE=5"); 

Ben ancak görünüşe değil, çerçeve kümesi sayfaları ana sayfadan ayarını devralması olacağını varsayarak edilmişti. Sadece bunu ana sayfaya koymadım, her sayfaya/çerçeveye koymam gerekiyordu.

1

Bir konumunun etiketi ile deneyebiliriz ...

<location path="YourPage.aspx"> 
    <system.webServer> 
     <httpProtocol> 
      <customHeaders> 
      <add name="X-UA-Compatible" value="IE=5" /> 
      </customHeaders> 
     </httpProtocol> 
    </system.webServer> 
</location> 
+2

Bunu denedim, ancak 'i ayarlamak için izin vermeme izin veren bir sözdizimi bulamadım. bir site. İkisini de nasıl ekleyebilirim? – xcer

İlgili konular