`

Highlight Key words

阅读更多
Highlight keyword, search the full html body.



function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) 
{
  // the highlightStartTag and highlightEndTag parameters are optional
  if ((!highlightStartTag) || (!highlightEndTag)) {
    highlightStartTag = "<font style='color:red; background-color:white;'>";
    highlightEndTag = "</font>";
  }
  
  // find all occurences of the search term in the given text,
  // and add some "highlight" tags to them (we're not using a
  // regular expression search, because we want to filter out
  // matches that occur within HTML tags and script blocks, so
  // we have to do a little extra validation)
  var newText = "";
  var i = -1;
  var lcSearchTerm = searchTerm.toLowerCase();
  var lcBodyText = bodyText.toLowerCase();
    
  while (bodyText.length > 0) {
    i = lcBodyText.indexOf(lcSearchTerm, i+1);
    if (i < 0) {
      newText += bodyText;
      bodyText = "";
    } else {
      // skip anything inside an HTML tag
      if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
        // skip anything inside a <script> block
        if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) {
          newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
          bodyText = bodyText.substr(i + searchTerm.length);
          lcBodyText = bodyText.toLowerCase();
          i = -1;
        }
      }
    }
  }
  
  return newText;
}


function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
  // if the treatAsPhrase parameter is true, then we should search for 
  // the entire phrase that was entered; otherwise, we will split the
  // search string so that each word is searched for and highlighted
  // individually
  if (treatAsPhrase) {
    searchArray = [searchText];
  } else {
    searchArray = searchText.split(" ");
  }
  
  if (!document.body || typeof(document.body.innerHTML) == "undefined") {
    if (warnOnFailure) {
      alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
    }
    return false;
  }
  
  var bodyText = document.body.innerHTML;
  for (var i = 0; i < searchArray.length; i++) {
    bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
  }
  
  document.body.innerHTML = bodyText;
  return true;
}

function callOnLoad(){
	highlightSearchTerms("nwt");
}

分享到:
评论

相关推荐

    vue-highlight-words react-highlight-wordsvue-highlight-words-Vue组件,用于在较大的文本正文中突出显示单词。 从react-highlight-words移植-Vue.js开发

    vue-highlight-words来自react-highlight-words Vue组件的简单端口,用于突出显示较大文本正文中的单词。 演示为什么? 它使用render t vue-highlight-words一个来自react-highlight-words Vue组件的简单端口来突出...

    react-highlight-words:React组件在较大的文本正文中突出显示单词

    import Highlighter from "react-highlight-words" ;ReactDOM . render ( &lt; Highlighter highlightClassName = "YourHighlightClass" searchWords = { [ "and" , "or" , "the" ] } autoEscape = { true } ...

    Highlight-multi-words-crx插件

    颜色突出显示多个关键字 该插件用于突出显示多个关键字。 主要功能指的是Multi-highlight插件,但修复了Multi-highlight插件中的一些未知错误。 支持语言:English (United States)

    Cross Words Highlight 划词高亮-1.1.3.zip

    名称:Cross Words Highlight 划词高亮 -------------------- 版本:1.1.3 作者:1776243356a 分类:其他 -------------------- 概述:网页划词高亮,随时随地添加批注,记录笔记,方便快捷的管理正在阅读的网页文档...

    vue-words-highlight:突出显示的单词

    Vue Words Highlight 用于高亮关键词的vue组件,可以用于类似于搜索的功能。 Installation npm install --save vue-words-highlight # or yarn add vue-words-highlight Usage Use Directive import { highlight...

    unity 插件 Highlight Plus v9.0

    《Unity插件Highlight Plus v9.0深度解析》 Unity引擎是全球领先的实时3D创作工具,被广泛应用于游戏开发、虚拟现实、增强现实、影视动画等领域。在这些项目中,提升用户体验和视觉效果至关重要,而Highlight Plus...

    Unity Highlight Plus v7.7.2

    Unity Highlight Plus v7.7.2

    Super highlight.zip

    《Super Highlight:超越传统的文本高亮插件》 在当今信息爆炸的时代,高效地阅读和检索文本变得至关重要。为此,一款优秀的高亮插件能够帮助我们突出重点,提高阅读效率。今天我们要介绍的是名为"Super Highlight...

    Unity 轮廓叠加发光效果插件 Highlight Plus v3.6

    在Unity中,视觉效果对于提升游戏体验至关重要,而"Highlight Plus v3.6"就是这样一个专门针对Unity设计的插件,用于实现对象的轮廓叠加发光效果。 Highlight Plus插件提供了高级的描边和高光功能,它能够帮助...

    Highlight This: finds and marks words-crx插件

    语言:English,Français,Nederlands,español,русский 根据您的列表自动查找并突出显示网页上的单词和短语 - 无需注册 - 以组和列表组织您的搜索单词 - 使用正则表达式(正则表达式令牌) - 所有数据本地...

    UNITY高亮显示插件Highlight Plus 5.3.4.unitypackage

    UNITY高亮显示插件,可以显示模型轮廓 内含 Highlight Plus 5.3.4.unitypackage highlight.unitypackage Highlighting.unitypackage

    highlight plus 4.0

    "Highlight Plus 4.0" 是一款专为Unity游戏引擎设计的高亮插件,它致力于提升游戏场景中的视觉效果,使玩家能够更加专注于游戏的关键元素。Unity是一款强大的跨平台3D游戏开发工具,被广泛应用于游戏开发、虚拟现实...

    Highlight all occurrences of selected word

    Highlight all occurrences of selected word插件,与选中的代码相同的会自动高亮,方便查找。最新版支持VisualStudio2017,实际验证,完全可以使用。

    Highlight Plus 8.0

    unity物体轮廓高亮显示插件 Highlight Plus 8.0 2022

    PanGu.HighLight.rar

    《PanGu.HighLight.dll:深度解析与应用》 在IT领域,动态链接库(Dynamic Link Library,简称DLL)是Windows操作系统中的一个重要组成部分。DLL文件允许多个程序共享同一块内存空间,从而节省系统资源,提高软件...

    Highlight4Writer 1.0.9.0 简体中文版

    《Highlight4Writer 1.0.9.0 简体中文版:一款全面本地化的写作辅助工具》 Highlight4Writer 1.0.9.0 简体中文版是一款专为中文用户设计的写作插件,它基于Highlight4Writer 1.0.9.0 alpha英文版进行深度本地化改造...

    Highlight Plus5.3.4.rar

    《Highlight Plus 5.3.4:提升游戏视觉体验的专业高亮插件》 在游戏开发领域,用户体验的优化往往离不开细腻的视觉效果。Highlight Plus 5.3.4是一款专为Unity引擎设计的高亮插件,它旨在增强游戏内的物体高亮表现...

    highlight 语法着色工具 v3.9

    Highlight 3.9 发布,该版本改进了插件接口用于支持输出文本的操作,增加一些插件用来在 HTML、LaTeX 和 RTF 输出中插入超链,改进了 Perl 和 N3 语言定义文件,修复了一些小bug。 Highlight 用来对源码进行语法...

Global site tag (gtag.js) - Google Analytics