如何检查网页中的文本是否有粗体

How to check whether a text is having bold in a web page

本文关键字:文本 是否 网页 何检查 检查      更新时间:2023-09-26

如果我的html页面有很多文本和一些有格式的单词。如果我使用

windows.find(text);

这将有助于在网页中查找文本。但是,我怎么能知道搜索到的文本在文档中是粗体的呢?

例如,如果我的页面HTML是:

 <body>
      Hello Techie, <b>I</b> am in bold.
 </body>

如果我使用window.find("I am"),它将与文本匹配。但我怎么知道"我是"是不是粗体?

我希望问题是清楚的。如果您希望进一步的意见对您有所帮助,请告诉我。

window.find()(如果支持)会将所选内容移动到找到的文本中。在这种情况下,您可以使用document.queryCommandState()来检查所选内容的大胆程度,这具有无论大胆程度如何设置(CSS font-weight<b><strong>元素)都能工作的优点。不幸的是,在非IE浏览器中,你必须暂时将文档置于设计模式才能实现这一点:

演示:http://jsfiddle.net/efN8P/

代码:

document.designMode = "on";
window.find("I am");
var isAllBold = document.queryCommandState("Bold");
alert(isAllBold);
document.designMode = "off";

这很有效,但我不确定跨浏览器兼容性:http://jsfiddle.net/VALr3/1/.它检查<b>元素是否是所选元素的一部分。

window.find("I am");
var sel = window.getSelection(),
    frag = sel.rangeCount > 0 && sel.getRangeAt(0).cloneContents();
alert(frag && frag.querySelectorAll("b").length > 0);