我想将boilerplatejs用于即将推出的Intranet项目,但是,许多机器仍然是带有IE8的WinXP(并且在大规模Firefox或Chrome部署的组织中没有选项)。
我很快就尝试合并html5shiv,但这似乎没有帮助。它没有出现路由或其他功能正常工作。我试图弄清楚这是否值得做,或者是否有其他人试图让这个工作在花费更多时间之前。
答案 0 :(得分:2)
不是真的。这就是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]-->
那些是优雅降级的条件条款,即&lt; 9。
如果这是一个很多人都会参与的项目,即&lt; 9,那么使用xhtml可能会更好......只是一个工程考虑因素
答案 1 :(得分:2)
事实上,您遇到的最困难的问题不是关于 boilerplatejs 而是关于外部库。
具体调整取决于您在应用程序中使用的功能,但首先需要的是
<section>
将其放入<head>
部分:
<!--[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]-->
使用此代码段,您将获得 boilerplatejs 示例页面,支持路由,主题和i18n支持。
然后,您会注意到,在点击计数器示例中,无论您点击按钮多少次,都不会获胜。这是因为 clickCounter / clickme 组件发布的LOTTERY_ACTIVITY
事件由于 pubsub.js 库中的错误(?)而无法到达任何侦听器(我甚至submitted an issue前一段时间)。要解决此问题,请修改 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完全兼容,任何不兼容性来自支持库,而不是核心代码。
答案 2 :(得分:0)
BoilerplateJS核心未设计任何HTML5功能。虽然我还没有在IE8中测试它,但我相信通过一些调整可以实现这一点。例如,如果crossroadsJS,用于路由的库与IE8不兼容,您仍然可以使用pathJS或其他与IE8兼容的东西轻松替换它。