2012-07-30 13 views
14

IE5 standart modunda çalışacak ve HTML5 komutlarını çalıştıran bir üst sayfamız var. Altında, uyumluluk modunda çalışması gereken bir iframe var (IE7/8).Iframe'in standart bir üst çerçevenin altında tuhaflıkları çalıştırması nasıl zorlanır?

IE9'da, anladığım kadarıyla, iframe'ler kendi türetlerini ebeveynlerinden miras alır. bu doğru mu? Bu sorun için herhangi bir çözüm var mı? Bir şekilde, iframe standart mod doctype ana çerçevesi altında quirks doctype ile çalıştırılabilir mi? sayesinde Tal

+0

bu yanıta bakın ekleyin DOCTYPE ihmal -> http://stackoverflow.com/a/5624373/572939 – ManseUK

+0

olası bir kopyası [Bir çerçevede quirks modunu çalıştır ve başka birindeki standart mod?] (http://stackoverflow.com/questions/4902255/run-quirks- mod-in-one-frame-ve-settings-in-one-modunda-modu) –

+1

Bunlar cevap sağlamıyor - çünkü tüm sayfayı IE7 modunda çalıştırmaya zorluyor. Gerekli davranış, IE9 modunu üst öğede etkinleştirmek, ancak içerideki iframe'deki quirks kipini kullanmaktır. – Tal

cevap

27

O IE9 bir çocuk Iframe'de farklı işleme modunu, resmi olarak burada belgelenen tetiklemek mümkün değildir: yeni render motoru sadece kullanılmasına rağmen

: http://msdn.microsoft.com/en-us/library/gg558056(v=vs.85).aspx (vurgu eklenmiştir) Windows Internet Gezgini, bir HTML sayfasının en yüksek düzey için standart desteğini istediğini algıladığında, aynı her zaman çerçeve ve iframe öğeleri içinde yüklenebilecek alt sayfalar için geçerli değildir. Sadece tek oluşturma motoru, bir kerede etkin olabilir, IE9 Modu da Quirks Mode için öykünme içerir.

Ancak söylediği gibi, sen can tetik "tuhaflıklar modu emülasyon" aktif IE9 render motorunu bırakır ancak eski Quirks modu maç için çeşitli yollarla kendi davranışlarını değiştiren.

JSBin demo: http://jsbin.com/ozejuk/1/

Bu örnek tarzı background: #ff0000; background: 00ff00; border-radius: 30px ile bir div var ... tuhaflıklar modunda, # olmadan altıgen renkleri kabul edilir. IE9 modunda değiller. IE9'da demoyu yüklemek, ana sayfada kırmızı bir div ve iframe'de yeşil bir div (ama yine de yuvarlak köşeleri var) gösterecektir.

Nasıl bir iç çerçeveye modu emülasyonu Quirks tetiklemek için: http://msdn.microsoft.com/en-us/library/gg558096(v=vs.85).aspx

Kısa versiyon: etkileri Quirks modu öykünme <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

tam listesi vardır render üzerinde: http://msdn.microsoft.com/en-us/library/gg558047(v=vs.85).aspx

+0

Yanıt için teşekkürler, Nick. Daha sonra bugün veya gelecek haftaya bakacağım. – isherwood

+0

Ne yazık ki, taklit quirks modu sorunumu gidermek için görünmüyor, bu: https://bugbase.adobe.com/index.cfm?event=bug&id=2928139 Yanıt için tekrar teşekkürler. İçine koyduğunuz çabayı takdir ediyorum. +1. – isherwood

+0

Görünüşe göre IE10 + 'da bir çocukta farklı görüntü işleme modlarını başlatabilirsiniz. bkz http://stackoverflow.com/questions/26206688/ie11-quirks-mode-under-iframe-javascript-errors/41270772#41270772 –

İlgili konular