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 特殊字符
Apr 05 Javascript
jQuery中before()方法用法实例
Dec 25 Javascript
Bootstrap对话框使用实例讲解
Sep 24 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
Nov 29 Javascript
微信小程序之页面拦截器的示例代码
Sep 07 Javascript
Web开发使用Angular实现用户密码强度判别的方法
Sep 27 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
微信小程序合法域名配置方法
May 06 Javascript
axios实现简单文件上传功能
Sep 25 Javascript
Vue项目打包压缩的实现(让页面更快响应)
Mar 10 Javascript
js代码实现轮播图
May 04 Javascript
js实现九宫格布局效果
May 28 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项目开发中最常用的自定义函数整理
2010/12/02 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP多进程编程实例
2014/10/15 PHP
php中fsockopen用法实例
2015/01/05 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
一端时间轮换的广告
2006/06/26 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
python 字符串split的用法分享
2013/03/23 Python
Python OS模块常用函数说明
2015/05/23 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
五款漂亮的纯CSS3动画按钮的实例教程
2014/11/21 HTML / CSS
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
存储过程和函数的区别
2013/05/28 面试题
酒店前厅员工辞职信
2014/01/08 职场文书
学习委员自我鉴定
2014/01/13 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
生产现场禁烟通知
2015/04/23 职场文书
仙境之桥观后感
2015/06/16 职场文书
大学生村官入党自传
2015/06/26 职场文书
矛盾论读书笔记
2015/06/29 职场文书
工作简报格式范文
2015/07/21 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技