JavaScript实现网页关键字高亮显示代码

作者:代码拾荒

时间:2026-10-22

浏览:123

本文提供一段JavaScript代码,用于在网页中自动查找并高亮显示指定的关键字。代码通过判断浏览器是否支持Range对象,分别采用不同策略进行文本查找与样式替换,支持自定义关键词、链接及颜色值。

文章目录

JavaScript实现网页关键字高亮显示代码

以下是用于实现网页关键字高亮功能的JavaScript代码片段。



定义一个名为keys的数组,用于存储待高亮的关键词配置。


数组元素为包含关键词、目标链接及高亮颜色的子数组,例如关键词“脚本”对应链接https://www.jb51.net及红色#ff0000。


配置关键词“小说”,对应链接http://www.kanshule.com及绿色#00ff00。


配置关键词“念经”,对应链接http://www.baidu.com及蓝色#0000ff。


配置关键词“工会”,对应链接http://www.baidu.com及橙色#cc6600。


           ] 

声明变量bookmark用于保存文本范围书签,以便在IE等旧浏览器中重置查找位置。


检测文档是否支持createRange方法,以区分现代浏览器与旧版IE。


若支持,则通过document.createRange()创建Range对象range。


若不支持createRange,则进入兼容旧版IE的处理分支。


使用document.body.createTextRange()创建文本范围对象range。


调用range.getBookmark()获取当前文本范围的书签,保存至bookmark变量。


} 

声明变量key用于遍历keys数组中的每个配置项。


for(var i = 0;key = keys[i];i++){


判断range对象是否具备findText方法,这是IE特有的文本查找方法。


调用range.collapse(true)将范围折叠至起始位置,确保从开头开始查找。


调用range.moveToBookmark(bookmark)将范围重置至之前保存的书签位置。


使用while循环配合range.findText(key[0])持续查找关键词,只要找到即执行后续操作。


调用range.pasteHTML(range.text.fontcolor(key[2]))将找到的文本替换为带有指定颜色样式的HTML片段。


        } 

若range对象不支持findText,则进入基于Selection对象的兼容处理逻辑。


声明变量s和n,分别用于存储选区对象和新创建的DOM元素。


通过window.getSelection()获取当前窗口选区对象s。


调用s.collapse(document.body,0)将选区折叠至文档body的起始位置。


使用while循环配合window.find(key[0])持续查找关键词,只要找到即执行后续操作。


创建一个新的SPAN元素n,用于包裹高亮文本。


设置n.style.color为key[2]指定的颜色值,实现文字颜色高亮。


调用s.getRangeAt(0).surroundContents(n)将当前选中的内容包裹在span元素n中,完成高亮显示。


        } 
    } 
} 

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章