In the example above, do I really have to convert a canvas to base64, base64 to ArrayBuffer, and finally convert from base64 to blob? (Firefox has a 'canvas.toBlob' function, but again that's not available in IE). Also, this only works in IE10, not IE9.

Does anyone have any suggestions for a solution that will work in Chrome, Safari, Firefox, IE9, and IE10?

BTW you do not need to strip the header of the data-uri - just set it directly for href example.IE 9 & 10 do not support the download attribute (surprise!) so there is no easy way around that except from using the server to serve the file.
–
Ken FyrstenbergNov 1 '13 at 23:07

I just added working code for IE10, but I'm still struggling to find something that works in IE9.
–
DanNov 1 '13 at 23:49

1 Answer
1

toBlob support in Chrome and FF is very recent, even though its been in the spec for several years. Recent enough that it wasn't even on the radar when MS made IE9 and 10.

Unfortunately MS has no intent of changing IE9 or IE10 canvas implementations, which means they will exist as they are for all eternity, with bugs and missing pieces. (IE10 canvas has several bugs that IE9 does not, that are fixed again in IE11. Like this gem. It's a real shamble.)