Ben sadece belgenin < vücudunun > içeriğinin kontrolünü verilen am tuhaf bir durum var. Ev sahibi, esnek kalmaya çalıştığımı varsayarsak, IE'yi hemen quirks kipine geçirecek bir doctype bildirmiyor. Belge üzerindeki sınırlı denetimimle, IE'yi sayfayı standart modda oluşturmak için zorlamak için ne yapabilirim?Yalnızca vücut içeriğinin kontrolünü elinizde bulundurursanız IE'yi standart modda render etmeye nasıl zorlayabilirsiniz?
cevap
Ben size söylemek sürece, bu konuda bir şey dinamik JS ile sayfanın içeriğini yeniden yazmak ve zorla bir Doctype'ı ekleyemezsiniz inanıyoruz.
Eğer <body>
üzerinde ne kadar kontrol özelliklerini inceleyeceğiz gidebilir miyim? JS/komut dosyası oluşturma izniniz var mı?
EDIT: İşte bir girişim ama bunu IE'de test etmedim. Size fikir verebilir. I document.write()
outerHTML
'un document.documentElement
ve compatMode'u CSS1Compat'a dönüştürür.
Yeniden yazdıktan sonra komut satırını çıkarmanız gerekebilir. Ben , dediğim gibi ben gerçekten çalışıyor tavsiye etmem bu ...
http://medero.org/first-line.html
DÜZENLEME 2.: Şaşırtıcı IE6 çalışıyor gibi görünüyor. Ancak yenilendiğinde, IE bir şekilde önbelleğe alır ve kalıcı olarak .document.write()
biçiminde kalır. Buna karşı koymak için, bir sorgu dizesiyle ekleyin, örneğin ?203984234
.
Yine, senin durumun ne olduğundan emin değilim, ama bu fikirler verir veya yardımcı olur.
DÜZENLEME 3.: Ben yeniden yazdım ve window.onload
için document.write
bağlı. Etkisi görmek için her ziyaret ettiğinizde benzersiz bir sorgu dizesi eklemeniz gerekir, çünkü .write
'un ardından onu önbelleğe alır.
http://medero.org/rewrite.html?f30324433322111
daha anlık bir şey gerekiyorsa muhtemelen jQuery'nin DOM hazır fonksiyon penceresi yüklenmeden önce yeniden yazmak jack olabilir.
Çeşitli Notlar: görsel olarak
outerHTML
kaydetmeden önce document.write <script>
şerit gerektiğini konularda
- Muhtemelen
document.write
kadar CSS aracılığıyla tüm html belgeyi gizlemek olabilir çağrılır Yeni yazılan sayfascript
bloğuna sahip değil.
Bu MSDN dosyasına Defining Document Compatibility makaleye bakabilirsiniz. Belki de X-UA-Compatible
meta etiketini yazacaksınız.
Partiye geç kaldı, ama ben sadece 'X-UA-Compatible' meta'sini denedim ve işe yaradı. Yine de denediğimde şanslıydım… görünüşe göre bunu HEAD etiketinizin başına koymanız gerekiyor ("X-UA-Uyumlu başlık, büyük/küçük harfe duyarlı değildir, ancak web sayfasının başlığında görünmelidir." başlık öğesi ve diğer meta öğeler dışındaki tüm diğer öğelerden önce. "http://goo.gl/xe3Ff). Ayrıca IE, tarayıcı penceresi açık olduğu sürece oluşturma modunu "önbelleğe alır", böylece pencerenizi kapatmayı ve açmayı deneyin. HEAD etiketi üzerinde kontrolüm var ama ... orijinal posteri yapmadı. – thirdender
Burada, based on meder's answer bunu çözmek başardı nasıl.
İlkX-UA-Compatible
meta dışarı yazma çalıştı ama bu işe yaramadı.belgenin sonunda
(ya da baş, ama bu da erişim yoktu):
<script type="text/javascript">
if (navigator.appName == 'Microsoft Internet Explorer'){
window.onload=function(){
if (document.documentMode == 5){
contents = document.documentElement.outerHTML;
newdoc = document.open("text/html", "replace");
newdoc.writeln('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
newdoc.write(contents);
newdoc.close();
}
};
}
</script>
iç if
sonsuz bir döngü önlemektir. Kodun kendiliğinden çıkarılması daha iyi olur, bir işlev koyarak ve işlev çağrısını string.replace()
ile kaldırarak söyleyebilirim, ancak bunu işe yaratabilmem için bunun yerine yerleşmek zorunda kaldım.
- 1. VML standart modda nasıl çalışır?
- 2. IFRAME içeriğinin yalnızca çerçeve kümesi kullanılmadan nasıl büyütülür?
- 3. jQuery standart modda IE8 için yuvarlak köşe kodu mu?
- 4. OtomatikCompleteTextView, yatay modda ipuçları
- 5. WebBrowser ajax içeriğinin beklenmesi
- 6. ADBannerView yatay modda, ancak dikey modda değil,
- 7. Erişim kontrolünü mvc uygulamasının servis katmanına nasıl enjekte edebilirim?
- 8. ToggleButton içeriğinin rengi nasıl güncellenir?
- 9. onPrepareDialog'da setSingleChoiceItems içeriğinin nasıl ayarlanacağı?
- 10. Mail gem - vücut dizgisini temizlemek için nasıl
- 11. Django REST Framework: serializer içeriğinin nasıl çalışır?
- 12. Razor - Render olmadan Render() ve Kodlama olmadan
- 13. Angular2: Form Patch kontrolünü "patchValue()"
- 14. Görselleri @ render ve render 'new' farklı nasıl? RoR yılında
- 15. Vim keybindings'i normal modda ve standart pycharm keybindings ekleme modunda nasıl alabilirim?
- 16. Vim "özel modda" nasıl başlatılır
- 17. Bir div içeriğinin tamamını seç
- 18. Doxygen içinde vücut yorumlar
- 19. Vücut json özelliklerini doğrulayamıyorum
- 20. Raylar? Vücut = 1
- 21. CALayer içeriğinin boyutunu ölçeklendirme
- 22. Bir vücut etiketinin stillerini nasıl edinebilirim?
- 23. Şişe kullanarak vücut metnini nasıl alabilirim?
- 24. dönüştürme bu modda
- 25. Statik başlık + menü, kaydırılabilir vücut
- 26. iframe içeriğinin stil alanını nasıl değiştirebilirim?
- 27. Bir .pem sertifikası içeriğinin nasıl görüntüleneceği
- 28. LibGDX: opengl içeriğinin kaybolup kaybolmadığı nasıl belirlenmeli?
- 29. OpenGL içeriğinin donanım hızlandırılıp artırılmadığını nasıl anlarım?
- 30. İkili modda Windows boruları
Bunun işe yaramayacağından kuşkuluyum. Sayfa zaten oluşturuldu. Bir doctype dinamik olarak eklerseniz, IE bunu algılar ve sayfayı yeniden oluşturmayı seçecektir. IE bunu yapabiliyorsa, 'document.documentMode' özelliğinin salt okunur olmadığını düşünürdüm. –
Bir girişim ile güncelledim. –
İlginç, gerçekte olduğu gibi gerçekten de işe yaramış gibi görünüyor. Kenar boşluğu ve dolgu ile bir div ekleyin ve IE'nin kutu modeli değiştikçe değişiklik boyutunu izleyin. –