【问题标题】:Conditionally load scripts in IE11 that runs in IE8 compatibility mode有条件地加载在 IE8 兼容模式下运行的 IE11 中的脚本
【发布时间】: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。通常这不会是一个问题,因为&lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; 强制边缘模式。不幸的是,有一个例外 - 如果 Active Directory 策略指定了某些 Enterprise 兼容模式,它会覆盖所有网页设置并强制浏览器进入 IE8 模式。

重写脚本加载以使用 require.js 之类的东西并不是现有应用程序的真正选择。

我缺少什么可以帮助我有条件地加载脚本或强制浏览器处于边缘模式,即使 AD 另有说明?

【问题讨论】:

标签: jquery internet-explorer ie8-compatibility-mode


【解决方案1】:

企业模式以 IE8 的文档模式运行,但它似乎不在该浏览器模式下,因此它会像常规 IE11 一样跳过条件 cmets。

我已经设法使用以下元标记更改了该模式。

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

企业模式只读取 IE8 兼容性。其他版本(例如 IE9 及更高版本)可读取并支持边缘模式,为您提供这些浏览器的最新功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多