Javascript之模拟文字高亮
在我们平时浏览网页的时候,我们常常会用到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之模拟文字高亮的更多相关文章
- Javascript 接口模拟
Javascript接口模拟可以通过三种方式实现文档手段(注释).辅助类和鸭式辨. 第一种和第二种只形式上体现没有真正的实现. 鸭式辨实现原理是:"只要能像鸭子一样叫和走就是鸭子" ...
- JavaScript之模拟评星打分
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312&qu ...
- HTML5 JavaScript实现图片文字识别与提取
8月底的时候,@阿里巴巴 推出了一款名为“拯救斯诺克”的闯关游戏,作为前端校园招聘的热身,做的相当不错,让我非常喜欢.后来又传出了一条消息,阿里推出了A-star(阿里星)计划,入职阿里的技术培训生, ...
- JavaScript自适应调整文字大小
JavaScript自适应调整文字大小 今天有个任务,发现页面上的数字由于太长而与其他数字重叠了.这个数字还不能像文字那样只显示一部分,必须全部显示.想了一些办法都不行,最后把超过1000变成1K,大 ...
- Javascript中对文字编码的三个函数
JavaScript中对文字编码主要有3个函数 escape,encodeURI, encodeURIComponent 相应3个解码函数 unescape, decodeURI, decodeURI ...
- javaScript实现选中文字提示新浪微博分享的效果
<!DOCTYPE html> <html xmlns:wb="http://open.weibo.com/wb"> <head> <me ...
- JavaScript动画-模拟拖拽
模拟拖拽的原理: x1等于div.offsetLeft y1等于div.offsetTop x2等于ev.clientX(ev表示event事件) y2等于ev.clientY 当我们在方块上按下鼠标 ...
- [Javascript] 爬虫 模拟新浪微博登陆
概述: 由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息. 虽然在网上能找到不少信息,但由于新浪微博改版,其登陆机制进行了修改,故很多老的文章就不适合用了. 经过一番摸索,成功模拟新浪微博的登陆 ...
- 浅谈Javascript事件模拟
事件是用来描述网页中某一特定有趣时刻的,众所周知事件通常是在由用户和浏览器进行交互时触发,其实不然,通过Javascript可以在任何时间触发特定的事件,并且这些事件与浏览器创建的事件是相同的.这就意 ...
随机推荐
- Python返回Json格式定义的例子
{ "code": 0, // code为0表示成功,否则为1 "message": null, "data": { "syscp ...
- 翻译连载 | 附录 A:Transducing(上)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...
- install plugin group_replication ERROR 1126 (HY000)
在给MySQL安装插件的时候,你可能会遇到如题所示的报错. 更详细的错误输出如下: mysql> INSTALL PLUGIN group_replication SONAME 'group_r ...
- 《Metasploit魔鬼训练营》第四章(下)
p163 XSSF 默认kali 2.0中没有xssf,先下载:https://code.google.com/archive/p/xssf/downloads 将下载下来的zip文件解压,将其中的d ...
- python学习笔记 函数
形式: def function(a,b,c=0,*args,**kw)#a,b必选参数,*args可变参数,**kw关键字参数 1.函数的返回值可以是多个参数.多个参数时,实际上返回的是一个tupl ...
- SVN服务器
什么是SVN服务器? 1.协助多人开发的代码管理器: 2.会记录代码是谁写的,并且可以回退到任意版本: 3.冲突解决: 4.升级(项目分支). SVN的搭建: 1.在服务器端下载SVN服务器,一个项目 ...
- apache mysql无法启动解决办法
最近在调试几个代码,需要不停的启动关闭服务器和mysql.在连续的几次开关后,无法启动了,每次启动后就直接关闭. 刚开始是怀疑是不是端口被占用了,查看端口后,并没有端口被占用的情况.查看mysql错误 ...
- jdk1.8hashmap源码解析
/* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...
- 离开Visual Studio C#的编译(你不知道的C#)
很多人一开始学习.net 第一天必定是安装Visual studio 或者很多关于C#学习的书上第一章节必定是告诉你要你下载一个vs 其实没有vs未必就不能开发了,只是可能说vs给我的开发带来了很多的 ...
- ML笔记:Gradient Descent
Review: Gradient Descent Tip 1: Tuning your learning rates eta恰好,可以走到局部最小值点; eta太小,走得太慢,也可以走到局部最小值点; ...