【发布时间】:2013-12-23 23:44:54
【问题描述】:
我有一个使用画布的动画,它在 Chrome 中运行良好。我正在使用 excanvas polyfill 来支持 IE 8。根据excanvas instructions,我在头部使用IE 条件标签附加了excanvas。
Working page here | Full code on Github
简化的 HTML:
<head>
<meta charset="utf-8">
<!--[if gte IE 9]><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><![endif]-->
<!--[if lt IE 9]><meta http-equiv="X-UA-Compatible" content="IE=7" /><![endif]-->
<link rel="stylesheet" href="css/normalize.min.css">
<link rel="stylesheet" href="css/ecard.css">
<script src="js/vendor/modernizr-2.6.2.min.js"></script>
<!--[if lt IE 9]><script src="js/vendor/excanvas.js"></script><![endif]-->
</head>
<body>
<canvas id="card" width="1000" height="750"></canvas>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.1.min.js"><\/script>')</script>
<script src="js/ecard.js"></script>
</body>
我正在使用答案推荐的三元运算符定义 ctx
var canvas = (typeof(G_vmlCanvasManager) != 'undefined') ? G_vmlCanvasManager.initElement($("canvas#card")[0]) : $("canvas#card")[0];
ctx = canvas.getContext('2d');
当我尝试从 IE 8 运行动画时,它什么也没做。我在 IE 8 开发人员工具中看不到任何错误。但是,当我在 IE 8 开发人员工具控制台中键入 ctx.fillRect(25, 25, 100, 100); 并运行它时,我收到错误“'ctx' is undefined”。
从 IE 8 开发人员工具来看,excanvas.js 似乎已正确加载。有什么想法吗?
【问题讨论】:
标签: canvas internet-explorer-8 html5-canvas polyfills