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

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

兼容性检测

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

excanvas 的使用要求

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

经过测试,发现:

动态添加 Canvas

JavaScript 写在页面最下方的情况下,只能采用动态添加 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’