2009-10-30 16 views
11

IE8'ye yüklediğimde ve geliştiricilerin araçlarını görüntülediğimde, bu sayfanın varsayılan değerlerin kaçık olduğunu gösteren bir sayfa üzerinde çalışıyorum.IE8'de neden quirks modunu tetikliyorum?

Ben sıkı bir DTD var: İhtiyacım sanmıyordum olsa

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

Hatta devam etti ve açık standartlarda geçiş koymak için:

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

Neden sayfa varsayılanı IE8 standartları olmadığını anlayamıyorum?

Düşünebildiğim tek şey, bu sayfaya ulaşmak için öncelikle bir uygulamaya giriş yapmam gerekiyor ve ilk sayfalar eski tuhaf mod sayfalarıdır. IE, sunucu modunda hangi modun kullanılacağına karar verir mi, yoksa sayfaya göre sayfaya karar verilmesi mi gerekiyor?

Teşekkürler!

+0

Tüm IE8 pencerelerinizi kapatıp tekrar yüklemeyi deneyin. – Jason

+0

bu benim quirks modu sorununu çözdü: http://stackoverflow.com/questions/6294301/dreamweaver-causing-quirks-mode-in-internet-explorer – rtpHarry

cevap

22

IE hayır,

Değil genellikle bir sunucu düzeyinde kullanmak hangi modda karar yapar. Siteye özgü olan compatibility view list'un çirkinliği var, ancak IE5.5 tarzı-Quirks-Mode'a değil, sadece IE7-style-Standards Mode'a geri dönüyorsunuz.

Aksi kodunuz, DOCTYPE sayfadaki ilk şey olduğu sürece Tamam görünüyor. IE, bir yorum, PI, XML bildirimi (IE8 öncesinde) veya doctype'dan önce herhangi bir boşluk olmayan metin içeriği varsa, document.compatMode= 'BackCompat''a zorlanacaktır. Bir kontrol karakteri, metin düzenleyicinizde göremeyeceğiniz bir şekilde gizlenmişse, bunu yapabilir.

Örnek sorun sayfası?

+3

Anladınız! Sorun, doctype bildiriminin sayfadaki kesinlikle ilk şey olmamasıydı. Teşekkürler! –

+0

Benim durumumda biraz oturumum ve bazı üstbilgi yönlendirmelerim var ama eğer kodu tekrarlarsanız bundan sonra çalışacak: 'echo ' ';'. başka bir 'doctype' kullanabilirsiniz – Patrioticcow

İlgili konular