Force IE9 into Quirks mode?

给你一囗甜甜゛ 提交于 2019-11-28 02:34:34

问题


I have a page with an iframe, and the iframe contains code that needs to run in quirks mode (it's Microsoft's Outlook Web Access, so it's not our code that we could fix anyway). IE9 introduced a "feature" that when the parent frame is in IE9 document mode, it also forces any iframes into the same document mode. This breaks the code we have an the iframe.

I was hoping this was a bug in IE9, but my ticket was turned down as "by design" (here is the ticket if you care to look)

I can't run the entire site in quirks mode, but I need it to happen only on this page. Is there a way to programmatically turn on quirks mode rendering? Either that, or a way to emulate pressing the "compatibility view" button - pressing this pretty much turns IE9 into IE8, which works just fine as well.

Is it possible to do either of these things?


回答1:


I had your same issue and researched it fairly extensively back in April 2011. As of then, the only way to have a top-level document in "standards mode" and a document in a child iframe in "quirks mode" in IE9 was to use a meta tag to have the browser behave as if it were IE8. (As far as I know, this is still the case and Microsoft has no intention to change it.) There are a variety of meta tags you can use to change browser mode, but the one I have used that has worked was:

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

If you include this meta tag, all of the documents should be properly rendered (per IE8 rules) according to their doctype.

Note, however, that this precludes you from using any of the newly supported css features in IE9, even in the top-level document. You won't be able to use border-radius, box-shadow, opacity, etc..

There's some more info on this at Will an iframe render in quirks mode?, which asks a more general question about iframes and doctypes in ie.




回答2:


BTW, the quirks mode for content embedded in an iframe is not exactly the same as normal quirks mode. See this: http://msdn.microsoft.com/en-us/library/gg558056(v=VS.85).aspx




回答3:


You should be able to have differing compat modes between the IFrame and the host - see: http://blogs.msdn.com/b/cjacks/archive/2010/12/01/does-a-standards-web-page-inside-of-an-iframe-in-a-quirks-web-page-render-in-standards-or-quirks.aspx

You can specify the compat mode you want explicity, even more than you can with the button, using the X-UA-Compatible tag: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx

HTH.



来源:https://stackoverflow.com/questions/5123326/force-ie9-into-quirks-mode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!