如何让Hot Towel模板与IE 8一起使用?

时间:2013-05-22 23:34:36

标签: html5 internet-explorer backwards-compatibility hottowel

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

我的假设是HTML 5问题,所以我尝试了以下内容。

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

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

    new ScriptBundle(“〜/ scripts / compat”)             .INCLUDE( “〜/脚本/ ES5-shim.js”)             .INCLUDE( “〜/脚本/ html5shiv.js”)   );

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

    @using System.Web @using System.Web.Optimization     热毛巾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 个答案:

答案 0 :(得分: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")
          );