Javascript 使用window.find获取所有引用

Javascript 使用window.find获取所有引用,javascript,highlight,find-occurrences,Javascript,Highlight,Find Occurrences,我想在文本中突出显示我在URL中的单词中出现的所有内容。 第一次,一切正常。但是我不知道怎么去下一个 highlightText:function(urlParams){ var urlSearch=window.location.search; var urlParams=新的URLSearchParams(urlSearch); var searchText=urlParams.get('search'); 如果(窗口查找(搜索文本)){ var el=document.getElement

我想在文本中突出显示我在URL中的单词中出现的所有内容。 第一次,一切正常。但是我不知道怎么去下一个

highlightText:function(urlParams){
var urlSearch=window.location.search;
var urlParams=新的URLSearchParams(urlSearch);
var searchText=urlParams.get('search');
如果(窗口查找(搜索文本)){
var el=document.getElementById('collection-content');
text=el.innerHTML;
标记=文本。替换(searchText,“+searchText+”);
el.innerHTML=已标记;
}
}
我尝试在if之前添加
while(window.find(searchText)
,但它不起作用,它似乎只在我的单词第一次出现时循环


提前感谢

如果您不使用正则表达式,那么它只会替换第一次出现的正则表达式,您可以尝试一下,也可以根据需要修改正则表达式

highlightText: function(urlParams) {
  var urlSearch = window.location.search;
  var urlParams = new URLSearchParams(urlSearch);
  var searchText = urlParams.get('search');
  if (window.find(searchText)) {
    var el = document.getElementById('collection-content');
    text = el.innerHTML;
    marked = text.replace(
      RegExp(`(${searchText})`),
      "<mark>" + searchText + " </mark>");
    el.innerHTML = marked;
  }
}
highlightText:function(urlParams){
var urlSearch=window.location.search;
var urlParams=新的URLSearchParams(urlSearch);
var searchText=urlParams.get('search');
如果(窗口查找(搜索文本)){
var el=document.getElementById('collection-content');
text=el.innerHTML;
已标记=text.replace(
RegExp(`(${searchText})`),
“+searchText+”);
el.innerHTML=已标记;
}
}

注意:匹配是区分大小写的

强制性警告:
窗口。查找
是,使用风险自负。此外,这是一个错误的工具,因为它返回一个布尔值。你能提供一个codesandbox.io来复制它吗?你为什么要这样做?@Jared:听起来很合理,但它似乎是在重塑“ctrl+F”的轮子。这不一定不好,也可能是一个很好的学习体验,但似乎有点多余,尤其是当您已经提到使用了错误的工具时。这听起来像是一个错误。如果您拥有网页,为什么不在呈现之前更改标记呢?