【发布时间】:2014-06-06 08:20:18
【问题描述】:
我的应用程序目前动态包含 jQuery 1.11 版本,用于 IE7 和 IE8,但 jQuery 2 用于 IE9+/Chrome/FF,使用条件 cmets。
<!--[if lt IE 9]>
@Scripts.Render("~/bundles/jquery-legacy")
<![endif]-->
<!--[if (gte IE 9) | (!IE)]><!-->
@Scripts.Render("~/bundles/jquery")
<!--<![endif]-->
这在所有 IE 版本(包括 10 版)中运行良好,包括所有兼容模式。不幸的是,即使在兼容模式下运行,IE11 也会忽略条件 cmets。通常这不会是一个问题,因为<meta http-equiv="X-UA-Compatible" content="IE=edge"> 强制边缘模式。不幸的是,有一个例外 - 如果 Active Directory 策略指定了某些 Enterprise 兼容模式,它会覆盖所有网页设置并强制浏览器进入 IE8 模式。
重写脚本加载以使用 require.js 之类的东西并不是现有应用程序的真正选择。
我缺少什么可以帮助我有条件地加载脚本或强制浏览器处于边缘模式,即使 AD 另有说明?
【问题讨论】:
-
从 11 开始,IE 不再支持条件 cmets:msdn.microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx
-
@crisbeto - 是的,我知道这会导致问题(在我看来,它应该在兼容模式下运行时支持它们)。
标签: jquery internet-explorer ie8-compatibility-mode