CanvasContext.save,CanvasContext.restore 行为怪异?
ctx.font = ctx.font.replace(/\d+px/, "10px"); console.log(ctx.font); ctx.save(); ctx.font = ctx.font.replace(/\d+px/, "18px"); ctx.restore(); console.log(ctx.font); |
输出:
10px sans-serif
18px sans-serif
根据文档预期结果为:
10px sans-serif
10px sans-serif
根据文档save应当保存当前的上下文的字体,在测试过程中发现font不能保存
是否可以在save的相关文档补充一下哪些属性需要自己保存。
更新:
调用 restore 后,
fillText会使用 restore后 的字体信息,
font getter 会返回 restore前 的字体信息,
measureText 返回的宽度是使用 restore前的字体信息计算的。