如果我的html页面有很多文字和一些有格式的单词。如果我使用
windows.find(text);
有助于在网页中查找文字。但是如何才能知道文档中搜索到的文本是否以粗体显示?
例如,如果我的页面HTML是:
<body>
Hello Techie, <b>I</b> am in bold.
</body>
如果我使用window.find("I am")
,它将与文字匹配。但我怎么知道“我是”是否大胆?
我希望问题很明确。如果您想要任何进一步的输入,请告诉我。
答案 0 :(得分:4)
window.find()
,在支持的情况下,将选择内容移动到找到的文本。在这种情况下,您可以使用document.queryCommandState()
检查所选内容的粗体,无论粗体如何设置(CSS font-weight
,<b>
或{ {1}}元素)。不幸的是,在非IE浏览器中,您必须暂时将文档置于设计模式以使其工作:
代码:
<strong>
答案 1 :(得分:3)
这有效,但我不确定跨浏览器的兼容性: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);