有啥方法可以让 Kinetic.js 支持 IE8?

Posted

技术标签:

【中文标题】有啥方法可以让 Kinetic.js 支持 IE8?【英文标题】:Any way of making Kinetic.js support IE8?有什么方法可以让 Kinetic.js 支持 IE8? 【发布时间】:2012-12-07 00:00:42 【问题描述】:

我现在的情况是,我需要一些复杂的代码来处理 Kinetic.js 和一个画布元素才能在 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 文档创建的元素画布实现画布元素的方法,但如果 &lt;canvas&gt; 元素已经创建,webshims 会播放并且您可以使用这些方法。但是,强制 Kinetic.js 使用单个画布元素会破坏它的一些功能(因为它会动态创建画布对象)。

为了实现这一目标,我有哪些选择?

【问题讨论】:

Chrome Frame 可以帮到你吗? google.com/chromeframe?quickenable=true @Flot2011 有可能,谢谢。 对于对此感兴趣的人 - fabricjs.com 可能值得考虑。它支持 IE8(虽然我没有测试过它的性能如何)。如果您对 Canvas 还是 SVG 不太挑剔,也可以考虑 raphaeljs.com(IE8 支持对基本矢量很有用,但对于文本和使用 png 图像作为填充的任何东西来说都是垃圾) 【参考方案1】:

简单的答案是“不”。

正如一位评论者所说,Google Chrome Frame 是一个不错的替代品,这需要将 Chrome 的渲染引擎安装为 IE 插件。

有the excanvas project,一开始可能听起来不错。这是在 VML (SVG) 中实现画布的尝试,以便 IE 6-8 可以使用画布。

Excanvas 很糟糕。特别是对于任何动画,它不能做一些画布图像处理的东西。而且已经快4年没有更新了。我强烈建议不要使用它,但它供您考虑。

【讨论】:

谢谢。在回到您的问题之前,我确实尝试了 WebShims、FlashCanvas、ExCanvas 和其他混合选项(甚至修补 Kinetic.js)。没有什么对我有用,所以我会接受我的失败。 这很可悲,但很真实。如果您想像 KineticJS 一样真正利用 Canvas 提供的所有功能,那么不支持 IE8 是唯一现实的选择

以上是关于有啥方法可以让 Kinetic.js 支持 IE8?的主要内容,如果未能解决你的问题,请参考以下文章

让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

asp.net-ckeditor4怎么样才能支持ie6啊或者有啥别的办法支持ie6谢谢

让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

转载------让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

让IE8和IE9支持 placeholder