Javascript 显式指定时忽略画布字体

Javascript 显式指定时忽略画布字体,javascript,canvas,fonts,Javascript,Canvas,Fonts,我正在画布上画一个文本。问题是ctx.font=font完全被忽略,并将默认值设置为10px无衬线。 这是我的函数 function drawResTexts(num) { var num = num || ""; var font = (resTxtStyle["font-style"+num] != undefined ? resTxtStyle["font-style"+num] : "normal") +

我正在画布上画一个文本。问题是ctx.font=font完全被忽略,并将默认值设置为10px无衬线。 这是我的函数

function drawResTexts(num) {
                    var num = num || "";
                    var font = (resTxtStyle["font-style"+num] != 
undefined ? resTxtStyle["font-style"+num] : "normal") + " " + resTxtStyle["font-size"+num] + "px " + resTxtStyle["font"+num];

                    ctx.font = font; // This line has no effect whatsoever

                    ctx.textAlign = resTxtStyle["align"+num] || "left";
                    var txtArr = resTxt.split("\n");

                    for (var i = 0; i < txtArr.length; i++) {
                        if (resTxtStyle["stroke"+num] != undefined) {
                            var stroke = resTxtStyle["stroke"+num].split(" ");
                            ctx.strokeStyle = stroke[1];
                            ctx.lineWidth = Number(stroke[0]) * 2;
                            ctx.strokeText(txtArr[i], resTxtStyle["pos"+num][0], resTxtStyle["pos"+num][1]);
                        }
                        ctx.fillStyle = resTxtStyle["color"+num];
                        ctx.fillText(txtArr[i], resTxtStyle["pos"+num][0], resTxtStyle["pos"+num][1] + i * (resTxtStyle["line-height"+num] || 0));
                    }
                }
有人能帮忙吗

我在这里看到了一个类似的问题,但在这里-这里canvas.getContext再次被调用,这是重置字体,但在我的例子中没有这样的情况


非常感谢您的帮助。

事实证明,字体应该是“普通45px格鲁吉亚”。这很奇怪,因为每个图形软件都使用“常规”字体样式。
可能有人会得到帮助。

事实证明,字体应该是“普通的45px格鲁吉亚”。这很奇怪,因为每个图形软件都使用“常规”字体样式。
可能有人会在这方面得到帮助。

Yes canvas
font
属性需要一个有效的CSS
font
速记值,其中标准
font weight
称为
normal
,这也是通常称为常规或普通的名称。请注意,如果您不喜欢这些名称,也可以使用。你声称“每个图形软件都使用“常规”是误导:他们使用字体设计师给他们的名字。e、 在我的osx上,默认的Tahoma是正常的,而对于Savoye,它是普通的。是的,canvas
font
属性需要一个有效的CSS
font
速记值,其中标准的
font-weight
被称为
normal
,这也是被称为常规或普通的一个非常常见的名称。请注意,如果您不喜欢这些名称,也可以使用。你声称“每个图形软件都使用“常规”是误导:他们使用字体设计师给他们的名字。e、 在我的osx上,默认的Tahoma是正常的,而对于Savoye来说,这很简单。
resTxtStyle = {
           "align": "center",
            "font": "Georgia",
            "font-size": "45",
            "font-style": "regular",
            "color": "#FFFF4C",
            "stroke": "2 #000"
}