使用 excanvas 实现 canvas 在 IE7~8 的兼容

IE8 及以下的浏览器上不兼容 canvas,可以使用 ExplorerCanvas 做兼容性的替代。

兼容性检测

var canvasSupported = !!document.createElement('canvas').getContext;

excanvas的使用要求

excanvas的例子中是这样使用的:

  • 在html的内引入所有的js

  • 在html中的onload上绑定canvas绘图的初始方法

  • 禁用动画new Chart(ctx).Line(dataLine, {animation: false});

经过测试,发现:

  • canvas标签必须写在excanvas初始方法之后,即:canvas必须在excanvas初始完成后生成

动态添加canvas

js写在页面最下方的情况下,只能采用动态添加canvas的方法。

尝试在页面原先的canvas的地方移除并且再添加一个长的一模一样的canvas。

然后调用G_vmlCanvasManager.initElement(canvasNew);初始化canvas。

之后就可以正常使用canvas了,包括canvas中的rgba颜色!

如果发现报错:对象不支持“measureText”属性或方法,那么请使用最新的excanvas。

canvas-polyfill

see on github

参考资料

Excanvas for dynamically created canvas elements

Error on IE7 and IE8, Object doesn't support property or method 'measureText'

你可能感兴趣的:(使用 excanvas 实现 canvas 在 IE7~8 的兼容)