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 相关文章推荐
ie 调试javascript的工具
Apr 29 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
Mar 14 Javascript
用JavaScript实现动画效果的方法
Jul 20 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
May 19 Javascript
Javascript中String的常用方法实例分析
Jun 13 Javascript
JavaScript实现动态添加,删除行的方法实例详解
Jul 02 Javascript
Bootstrap每天必学之导航条
Nov 27 Javascript
浅析js的模块化编写 require.js
Dec 07 Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 Javascript
Vue.js标签页组件使用方法详解
Oct 19 Javascript
JavaScript实例 ODO List分析
Jan 22 Javascript
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内存管理之谁动了我的内存
2013/06/20 PHP
YII实现分页的方法
2014/07/09 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
js获取div高度的代码
2008/08/09 Javascript
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
JS高级笔记
2011/07/13 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
Python复数属性和方法运算操作示例
2017/07/21 Python
python字典一键多值实例代码分享
2019/06/14 Python
Python with语句用法原理详解
2020/07/03 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
介绍一些UNIX常用简单命令
2014/11/11 面试题
学生实习介绍信
2014/01/15 职场文书
公益活动邀请函
2014/02/05 职场文书
园艺师求职信
2014/03/10 职场文书
cf搞笑广告词
2014/03/14 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
个人总结与自我评价
2015/02/14 职场文书
党员评议自我评价
2015/03/03 职场文书
龙猫观后感
2015/06/09 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
导游词之张家界
2019/10/31 职场文书
七个Python必备的GUI库
2021/04/27 Python