我现在处于一种情况,我需要使用一些复杂的代码来使用Kinetic.js和一个canvas元素来处理IE8。
据官方统计,Kinetic.js没有支持IE8的计划。
我尝试使用webshims lib,但Kinetic.js在以下代码中失败:
Kinetic.Canvas = function(width, height) {
this.element = document.createElement('canvas');
this.context = this.element.getContext('2d'); //<-- Error here
// set dimensions
this.element.width = width;
this.element.height = height;
};
错误是“对象不支持属性或方法'getContext'”。这对我来说很有意义,因为我不希望IE8文档创建的元素画布实现canvas元素的方法,但如果已经创建了<canvas>
元素,webshims就会播放,你可以使用方法。但是,强制Kinetic.js使用一个canvas元素会破坏它的一些功能(因为它会动态创建画布对象)。
为了达到这个目的,我有哪些选择?
答案 0 :(得分:3)
简单的答案是“不。”
正如一位评论员提到的,Google Chrome Frame是一个好的替代品,它基本上将Chrome的渲染引擎安装为IE插件。
有the excanvas project,起初可能听起来不错。这是尝试在VML(SVG)中实现canvas,以便IE 6-8可以使用canvas。
Excanvas非常糟糕。特别是对于任何动画,它都无法做一些画布图像处理的东西。而且近4年来一直没有更新。我强烈建议不要使用它,但它可供你考虑。