如何在不使用getComputedStyle的情况下确定font-weight粗体

时间:2014-02-25 16:40:24

标签: javascript performance

我正在制作HTML文本解析器,我希望能够确定文本节点何时显示为标题(可视化而非HTML标题)。

关于标题通常可以说的一件事是强调它们 - 通常以两种方式之一:粗体字体或更大的字体大小。

我可以使用getComputedStyle()获取相应的CSS值,但我想避免这种情况,因为解析器需要高性能(必须在Chromebooks上顺利运行)并且getComputedStyle()不是特别的查看数百或数千个节点时速度很快。

确定字体大小并不太难 - 我可以选择range的节点并从range.getClientRects()检查其客户端。我还没有找到一种智能的方法来检查字体但是重量,这就是为什么我在这里。

有人可以考虑采用性能更高的方式来使用getComputedStyle()吗?

我知道这可能是不可能的 - 只是想看看有人能想出一种巧妙的方法来解决这个问题。

修改

仅适用于Google Chrome扩展程序。

1 个答案:

答案 0 :(得分:0)

你打算在这里做的事情非常麻烦。由于您想要在某些设备上确定文本是否是粗体,取决于它们呈现文本的方式,整个系统可能会破坏!

我的建议是使用HTML5数据atrributes - 找出更多here - 并像这样使用它:

<div class="header" data-bold="yes">This will appear bold?</div>

然后,使用JavaScript,您可以使用data-bold属性遍历所有div元素。

我希望这有帮助;)