有没有办法在没有任何渲染的情况下计算字符串高度?

jdmdevdotnet

我想知道是否可以在 javascript 中测量字符串高度。我在 C# 中有这个代码,但我想看看我是否也可以在 Javascript 中得到它。我浏览了过去的 SO,发现这是一个答案(没有链接):

function get_tex_height(txt, font) {
    this.element = document.createElement('canvas');
    this.context = this.element.getContext('2d');
    this.context.font = font;
    return this.context.measureText(txt).height;
  }

无论出于何种原因,这都行不通。为什么?你可能会问。我不知道。而我也无从得知。我正在移动应用程序中重新编写 HTML,UIWebView其中我拥有的任何类型调试的唯一方法是alert(somethinghere). 如果 JS 不起作用,那么它就不会继续执行代码,我不知道它在哪里失败了。

所以我只想看看我是否可以向它传递字体、字体大小、宽度约束,并获得渲染时该字符串的准确高度。如果这是可能的,我开始得出的结论不是。我可能只需要为此使用我的 C# 方法。

进程号

您必须将其附加到 DOM 才能进行渲染和测量。您可以这样做而无需在页面上显示它,如下所示。

function getTextHeight(text, font)
{
  var cvs, ctx, body, h;

  cvs = document.createElement('canvas');
  ctx = cvs.getContext('2d');
  cvs.style.display = "none";
  body = document.getElementsByTagName("BODY")[0];
  body.appendChild(cvs);

  ctx.font = font;
  h = ctx.measureText(text).height;
  body.removeChild(cvs);

  return h;
}

告诉我它是否有效,可能仍然存在错误。显然,这NOTHING如果是直接插入到DOM做文字高度。您获得的高度只是画布上呈现的文本的高度。对于 DOM 中的高度,你必须做一些不同的事情,根据容器的宽度考虑包装......

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有办法在忽略空格的情况下使用OrderBy对字符串进行排序?

来自分类Dev

有没有办法在没有 BitmapFonts 的情况下在 libgdx 中绘制字符串?

来自分类Dev

PHP - 有没有办法在没有 for 循环的情况下通过字符串/文件系统函数运行数组值?

来自分类Dev

Eiffel:有没有办法在没有任何附加实例的情况下测试类的给定通用参数?

来自分类Dev

有没有办法强制 krunner 在 konsole 中运行任何字符串?

来自分类Dev

有没有办法在没有JavaScript的情况下动态更改内容?

来自分类Dev

有没有办法在没有Visual Studio的情况下使用DirectXTex?

来自分类Dev

有没有办法在没有字典的情况下创建哈希表?

来自分类Dev

有没有办法在没有 GUI 的情况下登录网络?

来自分类Dev

有没有办法在没有快照的情况下使用 Ubuntu 软件中心?

来自分类Dev

有没有办法在没有 AsyncPlayerChatEvent 的情况下捕获玩家聊天输入?

来自分类Dev

有没有办法在不使用void指针的情况下返回C函数中的任何类型?

来自分类Dev

在没有活动文档的情况下,有没有办法获得PowerPoint幻灯片的宽度和高度?

来自分类Dev

在没有活动文档的情况下,有没有办法获得PowerPoint幻灯片的宽度和高度?

来自分类Dev

有没有办法在没有密码/密钥但具有主机许可的情况下进入计算机?

来自分类Dev

有没有办法在没有密码/密钥但具有主机许可的情况下进入计算机?

来自分类Dev

有没有办法在不更改BorderStyle的情况下使Delphi VCL表单变大?

来自分类Dev

有没有办法在不登录的情况下用PHP拉instagram提要?

来自分类Dev

有没有办法在不使用令牌的情况下监视事务复制延迟?

来自分类Dev

有没有办法在不单击“确定”的情况下破坏tkinter消息框?

来自分类Dev

有没有办法在不创建新对象的情况下链接Javascript函数?

来自分类Dev

有没有办法在不调用转义的闭包的情况下使其无效?

来自分类Dev

默认情况下,有没有办法以隐身模式打开Google Chrome?

来自分类Dev

有没有办法在不输出新行的情况下显示“免费”更新?

来自分类Dev

有没有办法在不登录的情况下用PHP拉instagram提要?

来自分类Dev

有没有办法在不改变系统的情况下尝试网络规划配置?

来自分类Dev

在这种情况下,有没有办法避免条件结构?

来自分类Dev

有没有办法在不创建循环的情况下运行此代码

来自分类Dev

有没有办法在不循环的情况下应用行更新

Related 相关文章

  1. 1

    有没有办法在忽略空格的情况下使用OrderBy对字符串进行排序?

  2. 2

    有没有办法在没有 BitmapFonts 的情况下在 libgdx 中绘制字符串?

  3. 3

    PHP - 有没有办法在没有 for 循环的情况下通过字符串/文件系统函数运行数组值?

  4. 4

    Eiffel:有没有办法在没有任何附加实例的情况下测试类的给定通用参数?

  5. 5

    有没有办法强制 krunner 在 konsole 中运行任何字符串?

  6. 6

    有没有办法在没有JavaScript的情况下动态更改内容?

  7. 7

    有没有办法在没有Visual Studio的情况下使用DirectXTex?

  8. 8

    有没有办法在没有字典的情况下创建哈希表?

  9. 9

    有没有办法在没有 GUI 的情况下登录网络?

  10. 10

    有没有办法在没有快照的情况下使用 Ubuntu 软件中心?

  11. 11

    有没有办法在没有 AsyncPlayerChatEvent 的情况下捕获玩家聊天输入?

  12. 12

    有没有办法在不使用void指针的情况下返回C函数中的任何类型?

  13. 13

    在没有活动文档的情况下,有没有办法获得PowerPoint幻灯片的宽度和高度?

  14. 14

    在没有活动文档的情况下,有没有办法获得PowerPoint幻灯片的宽度和高度?

  15. 15

    有没有办法在没有密码/密钥但具有主机许可的情况下进入计算机?

  16. 16

    有没有办法在没有密码/密钥但具有主机许可的情况下进入计算机?

  17. 17

    有没有办法在不更改BorderStyle的情况下使Delphi VCL表单变大?

  18. 18

    有没有办法在不登录的情况下用PHP拉instagram提要?

  19. 19

    有没有办法在不使用令牌的情况下监视事务复制延迟?

  20. 20

    有没有办法在不单击“确定”的情况下破坏tkinter消息框?

  21. 21

    有没有办法在不创建新对象的情况下链接Javascript函数?

  22. 22

    有没有办法在不调用转义的闭包的情况下使其无效?

  23. 23

    默认情况下,有没有办法以隐身模式打开Google Chrome?

  24. 24

    有没有办法在不输出新行的情况下显示“免费”更新?

  25. 25

    有没有办法在不登录的情况下用PHP拉instagram提要?

  26. 26

    有没有办法在不改变系统的情况下尝试网络规划配置?

  27. 27

    在这种情况下,有没有办法避免条件结构?

  28. 28

    有没有办法在不创建循环的情况下运行此代码

  29. 29

    有没有办法在不循环的情况下应用行更新

热门标签

归档