在我们平时浏览网页的时候,我们常常会用到Ctrl+F(搜索)功能,被搜索到的文字就是高亮显示。那么,如何在Javascript中模拟文字高亮显示这一功能呢?

以下为笔者写的样例代码:

 <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Highlight</title>
<!--style of mark:Green,bold.-->
<style>
mark {
background-color:#00ff90; font-weight:bold;
}
p{text-indent:2em;}
</style> <script>
//highlight 'query' in page
function Func(){
var query = document.getElementById('query').value;
if(query == ''){alert('Query word is empty!')}
else{
var arr = [1, 2, 3, 4];
var i;
for(i=0; i<arr.length; i++){
var x = String(arr[i]);
document.getElementById(x).innerHTML = document.getElementById(x).innerHTML.replace(new RegExp(query,'g'),'<mark>'+query+'</mark>');
}
}
}
//refresh the page to cancel highlighting
function func(){
window.location.reload();
}
</script> </head>
<body>
<!--example text-->
<p id=''>北京,简称“京”,是中华人民共和国的首都、直辖市、国家中心城市、超大城市、国际大都市,全国政治中心、文化中心、国际交往中心、科技创新中心是中央委员会、中华人民共和国中央人民政府、全国人民代表大会、中国人民政治协商会议全国委员会、中华人民共和国中央军事委员会所在地,也是中部战区司令部驻地</p> <p id=''>上海,简称“沪”或“申”,中华人民共和国直辖市,国家中心城市,超大城市,国际经济、金融、贸易、航运、科技创新中心,首批沿海开放城市。上海地处长江入海口,是长江经济带的龙头城市,隔东中国海与日本九州岛相望,南濒杭州湾,北、西与江苏、浙江两省相接。</p> <p id=''>广州,简称穗,别称羊城、花城,广东省省会,位于广东省中南部,东江、西江、北江交汇处,珠江三角洲北缘,濒临中国南海。</p> <p id=''>深圳,简称“深”,别称鹏城,中国四大一线城市之一,广东省省辖市、计划单列市、副省级市、国家区域中心城市、超大城市。地处广东南部,珠江三角洲东岸,与香港一水之隔,东临大亚湾和大鹏湾,西濒珠江口和伶仃洋,南隔深圳河与香港相连,北部与东莞、惠州接壤。</p> <!--input and button-->
Query word: <input type="text" name="highlight" id='query'><br><br>
<button type="button" onclick="Func()">Highlight</button>
<button type="button" onclick="func()">Cancel Highlighting</button>
</body>
</html>

在“Query word“”中输入“中国”,显示如下:

如果要取消高亮,则点击“Cancel Highlighting”按钮,就是刷新页面,也就取消高亮。如果"Query word"中没有输入,则会弹出窗口,显示“Query word is empty!”.

这样,我们就能轻松模拟平时浏览网页时发生的文字高亮的情形啦~~

本次分享到此结束,欢迎大家交流~~

Javascript之模拟文字高亮的更多相关文章

  1. Javascript 接口模拟

    Javascript接口模拟可以通过三种方式实现文档手段(注释).辅助类和鸭式辨. 第一种和第二种只形式上体现没有真正的实现. 鸭式辨实现原理是:"只要能像鸭子一样叫和走就是鸭子" ...

  2. JavaScript之模拟评星打分

    <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&qu ...

  3. HTML5 JavaScript实现图片文字识别与提取

    8月底的时候,@阿里巴巴 推出了一款名为“拯救斯诺克”的闯关游戏,作为前端校园招聘的热身,做的相当不错,让我非常喜欢.后来又传出了一条消息,阿里推出了A-star(阿里星)计划,入职阿里的技术培训生, ...

  4. JavaScript自适应调整文字大小

    JavaScript自适应调整文字大小 今天有个任务,发现页面上的数字由于太长而与其他数字重叠了.这个数字还不能像文字那样只显示一部分,必须全部显示.想了一些办法都不行,最后把超过1000变成1K,大 ...

  5. Javascript中对文字编码的三个函数

    JavaScript中对文字编码主要有3个函数 escape,encodeURI, encodeURIComponent 相应3个解码函数 unescape, decodeURI, decodeURI ...

  6. javaScript实现选中文字提示新浪微博分享的效果

    <!DOCTYPE html> <html xmlns:wb="http://open.weibo.com/wb"> <head> <me ...

  7. JavaScript动画-模拟拖拽

    模拟拖拽的原理: x1等于div.offsetLeft y1等于div.offsetTop x2等于ev.clientX(ev表示event事件) y2等于ev.clientY 当我们在方块上按下鼠标 ...

  8. [Javascript] 爬虫 模拟新浪微博登陆

     概述: 由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息. 虽然在网上能找到不少信息,但由于新浪微博改版,其登陆机制进行了修改,故很多老的文章就不适合用了. 经过一番摸索,成功模拟新浪微博的登陆 ...

  9. 浅谈Javascript事件模拟

    事件是用来描述网页中某一特定有趣时刻的,众所周知事件通常是在由用户和浏览器进行交互时触发,其实不然,通过Javascript可以在任何时间触发特定的事件,并且这些事件与浏览器创建的事件是相同的.这就意 ...

随机推荐

  1. (一)windows7下solr7.1.0默认jetty服务器环境搭建

    windows7下solr7.1.0默认jetty服务器环境搭建 1.下载solr solr7官网地址:http://lucene.apache.org/solr/ jdk8官网地址:http://w ...

  2. CathyCMS-后台管理v1.0

    摘要: 最近开发CathyCMS系统作为练手项目,后台管理部分v1.0暂时告一段落.目前只包含了基本的登录.权限管理.频道管理.文章管理功能. 项目地址: https://github.com/cat ...

  3. 这些工具对html5开发有很大帮助

    如今H5已经在IT这块很热门,所以也就有越来越多的人自学或是报名培训班学习H5,今天写一篇关于当下html5开发工具有哪些?哪个更好一些? 浅谈2017年html5开发工具哪个好: 1.Adobe D ...

  4. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)

    微服务架构的应用由若干 service 组成.比如有运行 httpd 的 web 前端,有提供缓存的 memcached,有存放数据的 mysql,每一层都是 swarm 的一个 service,每个 ...

  5. 漫谈 SLAM 技术(上)

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:解洪文 导语 随着最近几年机器人.无人机.无人驾驶.VR/AR的火爆,SLAM技术也为大家熟知,被认为是这些领域的关键技术之一.本文对S ...

  6. Servlet之初始化参数和传递数据(ServletConfig,ServletContext )

    ServletConfig 容器初始化一个Servlet的时候,会为这个Servlet建一个唯一的Servletconfig的对象(Servlet的配置对象) 容器会从部署的描述文件(web.xml) ...

  7. TCP/IP 协议栈 -- 编写UDP客户端注意细节

    上节我们说到了TCP 客户端编写的主要细节, 本节我们来看一下UDP client的几种情况,测试代码如下: server: #include <stdio.h> #include < ...

  8. mysql索引优化面试题

    曾经偷偷的面试了两个单位,都提到了Mysql的优化问题,所以以后要多多学习数据库的优化知识了.建设数据库的优化大概主要就是索引的优化了吧,因为我们不可能修改数据结构的情况下,提高数据库的查询效率似乎也 ...

  9. 浅谈PipelineDB系列一: Stream数据是如何写到Continuous View中的

    PipelineDB Version:0.9.7 PostgreSQL Version:9.5.3 PipelineDB的数据处理组件: 从上图来看主要就是pipeline_streams,strea ...

  10. C# RichTextBox设置行间距

    之前从CSDN上下载了一个代码,参看之后,改了一些内容,感觉设置行间距更具体,不会因为字号的变化而受到影响,具体代码参看: CSDN:http://download.csdn.net/detail/n ...