2011-09-19 89 views

回答

1

得到画布旧版本的IE工作的唯一方法是使用某种类型的黑客。

画布仅在IE9中实现,因此以前的版本不知道任何关于它的信息。

有许多javascript hacks可用于将Canvas转换为VML对象以兼容IE6-8。

一个例子是在这里:对SVG,其也可转变为VML老年人的IE存在http://code.google.com/p/explorercanvas/

类似的黑客。例如http://code.google.com/p/svg2vml/

但是,请注意,无论这些黑客有多聪明,如果您在使用canvas进行任何聪明的事情,那么对于旧版本的IE,您可能会遇到一些相当基本的速度问题。这些黑客是用Javascript编写的,需要实时运行,基本上是最慢的Javascript解释器。如果你做任何复杂的图形,结果将不会很漂亮。

说实话,我已经放弃了试图让Canvas在旧版IE中工作。

我用跨浏览器动态图形获得的最好成绩是使用Raphael library。这在大多数浏览器中生成SVG,在较老的IE中生成VML,并且似乎运行良好 - 更重要的是,相当快速,即使在较老的IE中也是如此。

它不是画布,但它是跨浏览器的动态图形,并且在一天结束时,最终用户并不在乎你用什么来绘制图形,只要它看起来不错。

+0

我已经尝试实施explorercanvas,自述文件看起来很直接,但它仍然不会工作,不知道是否与我的画布js有关。 – calebo

+1

@caleb - 增加了最后一点,推荐Raphael。不是Canvas,但是如果你想要跨浏览器的兼容性,这是最好的解决方案。 – Spudley

1

Explorer Canvas一直对我很好。你要确保你下载了最新的JS文件:

http://code.google.com/p/explorercanvas/downloads/list

并且也包括在你的文档的顶部本文标签:

<head> 
<!--[if lt IE 9]><script src="excanvas.js"></script><![endif]--> 
</head>