How can I use the HTML5 canvas element in IE?
I am trying to use the HTML5 canvas element to draw some arcs and circles - this works perfectly in FF but IE8 does not seem to support it.
Now, there exist Javascript libraries which seem to make IE8 work well with Canvas. An example can be found here.
I have read their entire source but I cannot understand how they are making Canvas work with IE8. Can somebody please throw some light on the method used?
The page is using excanvas - a JS library that simulates the canvas element using IE's VML renderer.
Note that in Internet Explorer 9, the canvas tag is supported natively! See MSDN docs for details...
You can try fxCanvas: https://code.google.com/p/fxcanvas/
It implements almost all Canvas API within flash shim.
You could use the newly released Chrome Frame plugin for IE, but it requires that the HTML 5 website includes the special meta tag that enables the plugin.
http://code.google.com/chrome/chromeframe/
Chrome Frame seems to use Explore Canvas (excanvas.js).
Currently, ExplorerCanvas is the only option to emulate HTML5 canvas for IE6, 7, and 8. You're also right about its performance, which is pretty poor.
I found a particle simulatior that benchmarks the difference between true HTML5 canvas handling in Google Chrome, Safari, and Firefox, vs ExplorerCanvas in IE. The results show that the major browsers that do support the canvas tag run about 20 to 30 times faster than the emulated HTML5 in IE with ExplorerCanvas.
I doubt that anyone will go through the effort of creating an alternative because 1) excanvas.js is about as cleanly coded as it gets and 2) when IE9 is released all of the major browsers will finally support the canvas object. Hopefully, We'll get IE9 within a year
Eric @ www.webkrunk.com
If you need to use IE8, you can try this JavaScript library for vector graphics. It is like solving the "canvas" and "SVG" incompatibilities of IE8 at the same time.
Raphaël
I have just try it in a fast example and it works correctly. I don't know how legible is the source code but I hope it helps you. As they said in its site, the library is compatible with very old explorers.
Raphaël currently supports Firefox 3.0+, Safari 3.0+, Chrome 5.0+, Opera 9.5+ and Internet Explorer 6.0+.