Chartjs在IE8中不起作用,即使在包含excanvas之后也会出现canvas元素问题

时间:2013-08-19 10:14:51

标签: javascript jquery html asp.net html5

我一直致力于chartjs。 它在IE10中工作正常,但是当我将文档模式更改为IE8时,它会抛出以下错误

 Object doesn't support property or method 'getContext'  line.html, line 43 character 2

我尝试了所有建议的解决方案here

我包括了excanvas.js但没有运气。

您可以查看演示here,访问此页面并将文档模式更改为IE8。但是当我们将浏览器模式和文档模式更改为IE8时,parent site工作正常。请帮我解决这个问题

1 个答案:

答案 0 :(得分:5)

在我的HTML中,我在标题中有这个

<!--[if lt IE 9]>
<script type="text/javascript" src="../shared/js/excanvas/r73/excanvas.js?v=${BUILD.TAG}"></script>
<![endif]-->

在我的HTML中,我有这个为我的身体

<!--[if lt IE 9]>
<body class="oldie">
<![endif]-->
<!--[if (gte IE 9)|!(IE)]>
<body>
<!--<![endif]-->

然后我像这样使用chart.js(使用jquery)

var isOldIE = $("body").hasClass("oldie");
var $canvas = this.$element.find("canvas");
var canvas = $canvas[0];
// kick old ie into creating fake canvas straight away
if(isOldIE) {
   canvas = G_vmlCanvasManager.initElement(canvas);
}
var chartObj = new Chart(canvas.getContext("2d"));
// do your stuff eg
chartObj.Pie(CHARTJS_DATA, CHARTJS_CONFIG);