我有一个使用 fancybox 2 youtube iframe 的页面——它在除 IE9 之外的所有浏览器中都能完美运行,并且无法弄清楚发生了什么。在 IE9 中,什么也没有发生 - 根本没有弹出或覆盖。IE8 和 IE7 工作正常,safari、chrome、firefox 都可以。
该页面以第一行的 doctype 开头 - 我应该检查 IE9 的其他内容吗?
谢谢!
我有一个使用 fancybox 2 youtube iframe 的页面——它在除 IE9 之外的所有浏览器中都能完美运行,并且无法弄清楚发生了什么。在 IE9 中,什么也没有发生 - 根本没有弹出或覆盖。IE8 和 IE7 工作正常,safari、chrome、firefox 都可以。
该页面以第一行的 doctype 开头 - 我应该检查 IE9 的其他内容吗?
谢谢!
如果它在 IE7 和 IE8 中工作,我会检查是否在使用它们时,它们是否以兼容模式显示页面。如果不是,则很有可能 IE9 被强制进入兼容模式。您可以通过指定元标记来强制 IE 中的标准模式:
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
您还可以使用 JavaScript 来确定 IE 显示的模式:
javascript:alert(document.documentMode);
<script type="text/javascript">
engine = null;
if (window.navigator.appName == "Microsoft Internet Explorer")
{
// This is an IE browser. What mode is the engine in?
if (document.documentMode) // IE8 or later
engine = document.documentMode;
else // IE 5-7
{
engine = 5; // Assume quirks mode unless proven otherwise
if (document.compatMode)
{
if (document.compatMode == "CSS1Compat")
engine = 7; // standards mode
}
// There is no test for IE6 standards mode because that mode
// was replaced by IE7 standards mode; there is no emulation.
}
// the engine variable now contains the document compatibility mode.
}
</script>
或者您可以强制 IE 显示为特定版本:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" >
Microsoft 有一篇很好的 MSDN 文章详细描述了这一点。http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx