HTML中的全文搜索,忽略标签/&
我最近看到了很多用于在HTML页面中搜索和突出显示术语的库。但是,我看到的每个库都存在相同的问题,它们找不到部分用html标记封装的文本,并且/或者找不到包含&表示的特殊字符。
示例a:
<span> This is a test. This is a <b>test</b> too</span>
搜索“测试”将找到第一个实例,但找不到第二个实例。
示例b:
<span> Pencils in spanish are called lápices</span>
搜索“lápices”或“ lapices”将不会产生结果。
有没有这样做的JS库,或者至少是一种避免这些障碍的方法?
提前致谢!
回答:
您可以window.find()
在非IE浏览器中使用,也可以在IE中使用TextRange
的findText()
方法。这是一个例子:
不幸的是,在版本15中切换到Blink渲染引擎之前的Opera不支持window.find
或TextRange
。如果您对此感到担忧,那么一个更重量级的选择是结合使用我的Rangy库的TextRange和CSS类应用程序模块
码:
function doSearch(text) { if (window.find && window.getSelection) {
document.designMode = "on";
var sel = window.getSelection();
sel.collapse(document.body, 0);
while (window.find(text)) {
document.execCommand("HiliteColor", false, "yellow");
sel.collapseToEnd();
}
document.designMode = "off";
} else if (document.body.createTextRange) {
var textRange = document.body.createTextRange();
while (textRange.findText(text)) {
textRange.execCommand("BackColor", false, "yellow");
textRange.collapse(false);
}
}
}
以上是 HTML中的全文搜索,忽略标签/& 的全部内容, 来源链接: utcz.com/qa/408304.html