1

我使用热毛巾模板构建了一个原型,该模板在大多数浏览器中都可以找到,但在 IE8 文档模式下查看时不显示任何内容(使用 IE 9 开发人员工具)。对于代码露营者示例应用程序,也会发生同样的事情。

我的假设是它是一个 HTML 5 问题,所以我尝试了以下方法。

  1. 添加了 html5shiv 和 es5-shim nuget 包。

  2. 为 Bundle config.cs 中的脚本创建一个新包,即

    new ScriptBundle("~/scripts/compat") .Include("~/scripts/es5-shim.js") .Include("~/scripts/html5shiv.js") );

  3. 将新包添加到 index.cshtml 视图

    @using System.Web @using System.Web.Optimization Hot Towel SPA

    @Styles.Render("~/Content/css")
    <script type="text/javascript">
        if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
            var msViewportStyle = document.createElement("style");
            var mq = "@@-ms-viewport{width:auto!important}";
            msViewportStyle.appendChild(document.createTextNode(mq));
            document.getElementsByTagName("head")[0].appendChild(msViewportStyle);
        }
    </script>
    @Scripts.Render("~/scripts/compat")
    

但问题依然存在。有谁知道如何解决这个问题,或者我错过了其他东西。

4

1 回答 1

1

只需在进入 Breeze 之前将 es5 Shim 和 Sham 库添加到供应商捆绑包中即可。

bundles.Add(
          new ScriptBundle("~/scripts/vendor")
            .Include("~/scripts/jquery-{version}.js")
            .Include("~/scripts/knockout-{version}.debug.js")
            .Include("~/scripts/sammy-{version}.js")
            .Include("~/scripts/toastr.js")
            .Include("~/scripts/Q.js")
            .Include("~/scripts/es5-shim.min.js")
            .Include("~/scripts/es5-sham.min.js")
            .Include("~/scripts/breeze.debug.js")
            .Include("~/scripts/bootstrap.js")
            .Include("~/scripts/moment.js")
          );
于 2013-05-31T08:15:35.443 回答