【问题标题】:Can boilerplatejs be made to work with IE8?可以使样板文件与 IE8 一起使用吗?
【发布时间】:2013-02-01 16:32:24
【问题描述】:

我想将boilerplatejs 用于即将进行的 Intranet 项目,但是,许多机器仍然是带有 IE8 的 WinXP(并且在组织中没有用于大规模 Firefox 或 Chrome 部署的选项)。

我很快尝试合并 html5shiv,但这似乎没有帮助。它似乎没有路由或其他功能正在工作。我试图弄清楚这是否值得做,或者是否有人在花更多时间之前尝试过让这个工作。

【问题讨论】:

  • 我已成功调整 boilerplatejs 以在复杂的应用程序中使用 IE8,因此我可以确认这不是限制。如果您发布了您收到的特定错误消息,这将有助于回答您的问题。
  • Stas 的更改现在已合并到主 BoileplateJS 存储库中。现在它应该可以在 IE 8 上正常工作了。

标签: html internet-explorer-8 boilerplatejs


【解决方案1】:

不是真的。这就是h5bp中的代码的意义

<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->

这些是 ie

如果这是一个很多人会使用 ie

【讨论】:

    【解决方案2】:

    其实你会遇到的最困难的问题不是boilerplatejs,而是外部库。

    具体的调整取决于您在应用程序中利用的功能,但首先您需要做的只是

    • 添加 html5shim 以支持 HTML5 元素,例如 &lt;section&gt;
    • 包含 json2 库,用于缺少 json 序列化支持
    • [可选地] 包括 explorercanvas 以启用 flot 图表

    把它放在你的&lt;head&gt; 部分:

    <!--[if lt IE 9]>
    <script type="text/javascript" charset="utf-8" src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <script type="text/javascript" charset="utf-8" src="http://cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js"></script>
    <script type="text/javascript" charset="utf-8" src="http://explorercanvas.googlecode.com/svn/trunk/excanvas.js"></script>
    <![endif]-->
    

    通过这个 sn-p,您将获得 boilerplatejs 示例页面,其中包含路由、主题和 i18n 支持。

    然后,您会注意到在 Click Counter 示例中,无论您单击按钮多少次,您都不会获胜。这是因为 clickCounter/clickme 组件发布的LOTTERY_ACTIVITY 事件由于 pubsub.js 库中的错误(?)没有到达任何侦听器(我什至 @987654322 @ 前一段时间)。要解决它,请修补 libs\pubsub\pubsub-20120708.js,更改

    params = (args.length > 1) ? Array.prototype.splice.call(args, 1) : []
    

    到 IE8 兼容的调用:

    params = (args.length > 1) ? Array.prototype.splice.call(args, 1, args.length-1) : []
    

    恭喜...你赢了!!!

    Backbone TODO 模块中的剩余问题由您自行解决,您可以使用 original code 作为指导。

    总而言之,我想说boilerplatejs 完全兼容 IE8,任何不兼容都来自支持库,而不是核心代码。

    【讨论】:

    • 哇..这是很酷的工作..感谢您的帮助..我会拉它!
    【解决方案3】:

    BoilerplateJS 核心没有设计任何 HTML5 功能。虽然我没有在 IE8 中测试过,但我相信通过一些调整这是很有可能的。例如,如果用于路由的 crossroadsJS 库与 IE8 不兼容,您仍然可以轻松地将其替换为 pathJS 或其他与 IE8 兼容的东西。

    【讨论】:

    • 我对 BoilerplateJS 核心的粗略一瞥似乎表明了这一点。我没有想到只处理有问题的库,但是在 BoilerplateJS 中这很容易让我继续沿着这条路走下去。这也是我喜欢使用 BoilerplateJS 的原因之一!
    • 如果你做了任何改进,请告诉我们。我们可能会将其合并到主流代码库中!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多