Javascript 如何解决Firefox画布文本呈现错误?

Javascript 如何解决Firefox画布文本呈现错误?,javascript,firefox,canvas,Javascript,Firefox,Canvas,我已经编写了一个小JavaScript来计算与文本高度相关的度量。 它扫描画布图像数据以查找文本的顶部和底部 不幸的是,由于Firefox的原因,它目前在Firefox中被破坏--top的位置比它应该的位置高,这破坏了fitHeight的逻辑 关于如何解决这个问题,有什么建议吗?既然你是用手扫描,文本的实际位置应该无关紧要???@gamealchest为什么?假设文本是“我”。顶部像素的位置取决于在画布上绘制字母时字母本身的位置。如果Firefox将文本置于比其他浏览器高10像素的位置,则顶部像

我已经编写了一个小JavaScript来计算与文本高度相关的度量。
它扫描画布图像数据以查找文本的顶部和底部

不幸的是,由于Firefox的原因,它目前在Firefox中被破坏--
top
的位置比它应该的位置高,这破坏了
fitHeight
的逻辑


关于如何解决这个问题,有什么建议吗?

既然你是用手扫描,文本的实际位置应该无关紧要???@gamealchest为什么?假设文本是“我”。顶部像素的位置取决于在画布上绘制字母时字母本身的位置。如果Firefox将文本置于比其他浏览器高10像素的位置,则顶部像素的y坐标将减少10。然后,当它被放在一个范围内时(例如),所有浏览器都会以相同的方式放置它(因为它在Firefox中只是一个画布bug)。因此,您无法将其正确地安装在跨度中。由于您要进行测量,请使用一些上边距(顶部32,下方32)进行绘制,然后逐行扫描,以便检测高度。只要这个bug存在,你的库就应该处理垂直偏移和/或注入CanvasRenderingContext2D.fillText和drawText来纠正这个bug。@游戏术士:我不能说我理解你提出的解决方案。你能不能把它作为一个答案,让这里有更多的讨论空间?我的主要问题是,根据使用的字体,if offset在动态上可能不正确。即使我检测到FF版本,我也不确定如何找到正确的偏移量。另外,我不确定32的边距达到了什么程度——我不能用背景画文本,所以我不能从画布上检测包含框的高度。