Canvas 画布字体在第一次启动时不起作用?

Canvas 画布字体在第一次启动时不起作用?,canvas,click,font-face,webfonts,Canvas,Click,Font Face,Webfonts,这是我的演示 HTML <canvas id="random"></canvas> jQuery function Random() { var length = 9, charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", retVal = ""; for (var i = 0, n = charset.length; i < length; ++i) {

这是我的演示

HTML

<canvas id="random"></canvas>

jQuery

function Random() {
    var length = 9,
        charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
        retVal = "";
    for (var i = 0, n = charset.length; i < length; ++i) {
        retVal += charset.charAt(Math.floor(Math.random() * n));
    }
    return retVal;
}
var ctx = document.getElementById("random").getContext('2d');
ctx.font = "30px Codystar";
ctx.fillText(Random(), 30, 30);
函数随机(){
变量长度=9,
charset=“abcdefghijklmnopqrstuvxyz012456789”,
retVal=“”;
对于(变量i=0,n=charset.length;i

我的问题:字体在第一次启动时不工作?

我认为您的字体最初不会显示,因为在JavaScript代码运行之前,浏览器没有时间下载@font-face声明的字体数据。如果没有字体数据,浏览器将默认为其正常字体

您可能可以通过阻止JavaScript代码在浏览器从Google获得字体数据之前运行来解决此问题,例如:

window.onload = function(){
    //your code here
};