JS实现搜索关键词的智能提示功能


Posted in Javascript onJuly 07, 2017

最近在百度搜索的时候,当你输入一个字或者词的时候,他会给你们弹出一个下拉框出来,里面是和你相关的搜索提示

比如 我输入杨字,他会给我提示以下搜索提示

JS实现搜索关键词的智能提示功能

我尝试着用JavaScript做了一个类似的练习,以下是我用VS2013写的代码,有不对的地方,请不吝赐教。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript">
onload = function () {
function handle() {
var keyWords = { 
"杨忠科": ["杨忠科的视频", "杨忠科的微博", "杨忠科的邮箱"],
"杨": ["杨利伟", "杨振宇", "杨过"],
"杨忠": ["杨忠科", "杨忠学", "杨忠爱国"],
"杨忠科爱":["杨忠科爱祖国","杨忠科爱首都","杨忠科爱学习"]
};
if (keyWords[this.value]) {
//判断body中是否有这个层,如果有就删掉了
if (document.getElementById('dv')) {
document.body.removeChild(document.getElementById('dv'));
}
//开始创建层
var dvObj = document.createElement('div');
dvObj.id = 'dv';
dvObj.style.width = '300px';
//dvObj.style.height = '200px'; //将来可以不要
dvObj.style.border = '1px solid red';
document.body.appendChild(dvObj);
//脱离文档流
dvObj.style.position = 'absolute';
dvObj.style.left = this.offsetLeft + 'px';
dvObj.style.top = this.offsetHeight + this.offsetTop + 'px';
//循环创建
for (var i = 0; i < keyWords[this.value].length; i++) {
//创建一个可以存文本的标签
var pObj = document.createElement('p');
pObj.innerText = keyWords[this.value][i];
//p标签要有小手,还有高亮显示
pObj.style.cursor = 'pointer';
pObj.style.margin = '5px';
pObj.onmouseover = function () {
this.style.backgroundColor = 'red';
};
pObj.onmouseout = function () {
this.style.backgroundColor = '';
}
dvObj.appendChild(pObj); //把p标签加到层中
}
//创建可以显示文件的标签
}
}
//firefox下检测状态改变只能用oninput,且需要用addEventListener来注册事件。 
if (/msie/i.test(navigator.userAgent)) //ie浏览器 
{
document.getElementById('txt').onpropertychange = handle
}
else {//非ie浏览器,比如Firefox 
document.getElementById('txt').addEventListener("input", handle, false);
}
}; 
</script>
</head>
<body>
<span id="msg"></span>
请输入搜索关键字<input type="text" name="name" value="" style="width:300px;height:30px;font-size:25px; border:1px solid green" id="txt"/>百度一下
</body>
</html>

效果展示:

JS实现搜索关键词的智能提示功能

关于这个练习我有以下几点思索

1.因为搜索热词提前被设定好,放在键值对里面,所以搜索的范围也就被限定了,这个可以再被加深,和数据库中的数据连接起来,搜索的的关键词直接从数据库中查询,这个具体怎么写我还没研究透,希望有经验的前辈可以指教。

2.关于这个代码的应用我觉得可以应用在用户查询搜索上,百度搜索就是一个很好的实例

3.代码毕竟是JS写的,如果用户的电脑将JS控件阻止了,效果也就不行了。

以上所述是小编给大家介绍的JS实现搜索关键词的智能提示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
深入认识javascript中的eval函数
Nov 02 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
Mar 02 Javascript
jQuery 操作option的实现代码
Mar 03 Javascript
select标签模拟/美化方法采用JS外挂式插件
Apr 01 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 Javascript
Bootstrap每天必学之折叠
Apr 12 Javascript
jQuery实现自动调用和触发某个事件的方法
Nov 18 Javascript
js链表操作(实例讲解)
Aug 29 Javascript
Vue打包后出现一些map文件的解决方法
Feb 13 Javascript
VSCode launch.json配置详细教程
Jun 18 Javascript
js实现搜索提示框效果
Sep 05 Javascript
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue.js国际化 vue-i18n插件的使用详解
Jul 07 #Javascript
javascript ES6 新增了let命令使用介绍
Jul 07 #Javascript
微信小程序之绑定点击事件实例详解
Jul 07 #Javascript
分享19个JavaScript 有用的简写写法
Jul 07 #Javascript
Vue.js数据绑定之data属性
Jul 07 #Javascript
js实现从左向右滑动式轮播图效果
Jul 07 #Javascript
JavaScript实现图片无缝滚动效果
Jul 07 #Javascript
You might like
php实现过滤字符串中的中文和数字实例
2015/07/29 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
js html实现计算器功能
2018/11/13 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
python删除列表中重复记录的方法
2015/04/28 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
Python3最长回文子串算法示例
2019/03/04 Python
python实现网站微信登录的示例代码
2019/09/18 Python
python中的逆序遍历实例
2019/12/25 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
Python几种常见算法汇总
2020/06/02 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
日本即尚网:JSHOPPERS.com(支持中文)
2019/12/03 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
厨师长岗位职责
2014/03/02 职场文书
自我管理的活动方案
2014/08/25 职场文书
创新社会管理心得体会
2014/09/12 职场文书
个人总结与自我评价
2014/09/18 职场文书
公司年夜饭通知
2015/04/25 职场文书
爱护环境卫生倡议书
2015/04/29 职场文书