怎样用js实现html全站搜索,JS模拟浏览器实现全局搜索功能

本文介绍了如何使用JavaScript模拟浏览器的全局搜索功能,通过获取指定区域内容,匹配并替换搜索关键字,实现内容高亮。文章还提到了在Vue等框架下遇到的事件失效问题以及解决方案。
摘要由CSDN通过智能技术生成

JS模拟浏览器实现全局搜索功能

发布时间:2020-10-22 09:18:55

来源:脚本之家

阅读:107

作者:loveEternity

需要像浏览器的全局搜索一样,搜索指定模块的对应值,然后将匹配到的内容添加背景颜色等。

思路

需要取到当前指定区域的所有内容

然后在取到的内容中找到搜索的内容加上对应的背景颜色

最后在将修改后的内容渲染到页面上

实现

利用innerHTML取到对应模块的内容

编写对应的正则表达式来匹配搜索的内容

利用String.prototype.replace替换匹配到的内容

最后在渲染到页面上

代码实现:

let wrap = document.querySelector('.wrap');

let innerHTML = wrap.innerHTML;

let reg = new RegExp(query, 'g');

innerHTML = innerHTML.replace(reg, '' + query + '');

wrap.innerHTML = innerHTML;

具体的实现搜索实现就完成了,但是上面代码还有个缺陷,就是更换搜索内容时,之前搜索的内容还是具有选中的样式,那么接下来完善功能:

let preQuery = ''; // 上一次搜索的内容

let wrapDom = ''; // 搜索区域的dom元素</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值