I’ve been experimenting with using the <canvas> tag for drawing simple diagrams and charts, and so far it’s pretty easy to work with. I have one issue thought. I can’t figure out how to draw text on a <canvas> in Safari. In Firefox 3.0, I can do this:
Chart.prototype.drawTextCentered = function(context, text, x, y, font, color) { if (context.mozDrawText) { context.save(); context.fillStyle = color; context.mozTextStyle = font; x -= 0.5 * context.mozMeasureText(text); context.translate(x, y); context.mozDrawText(text); context.restore(); } }
I’ve seen reference to a fillText() method in Apple’s Safari docs, but it doesn’t appear to be supported in Safari 3.2. Is this just something that’s currently missing, or is it some well-kept secret?
I don’t believe that Safari 3.2 supports rendering text in the canvas.
According to this blog, Safari 4 beta supports rending text to the canvas, based on the HTML 5 canvas text APIs.
edit: I have confirmed that the following snippet works in Safari 4 beta: