vue实现百度搜索功能


Posted in Javascript onDecember 28, 2020

本文实例为大家分享了vue实现百度搜索功能的具体代码,供大家参考,具体内容如下

最终效果:

vue实现百度搜索功能

Baidusearch.vue所有代码:

<template>
 <div>
 <div class="container" id="app">
 <div class="page-header">
  <h2 class=" text-center text-primary">百度搜索案例</h2>
 </div>
 <form action="">
  <div class=" form-group">
  <input v-model="wd" @keyup="keyup($event)" @keydown="keydown($event)" type="text" class="form-control" />
  <ul class="list-group">
  <li class="list-group-item list-group-item-text" v-for="(item,index) in arr" :class="{'list-group-item-info':index==listIndex}" @click="click($event)">{{item}}</li>
  </ul>
  </div>
 </form>
 </div>
 </div>
</template>
 
<script>
 export default {
 name: "Baidusearch",
 data(){
  return{
  wd:'',//搜索的关键词
  arr:[],//用于储存关键词的搜索词条
  listIndex:-1//设置初始索引,数组从0开始,因此初始成-1
  }
 },
 methods:{
 //这个函数我们在input标签输入关键词的时候不断的给百度服务器发送请求获取搜索词条,并且不断的复制给data中的数组arr
 keyup(event){
  //如果我按的是上下键,那么就不发送请求了
  console.log(event);
  if(event.keyCode==38||event.keyCode==40||event.keyCode==13) return ;
  var url="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su"
  this.$http.jsonp(url,{
  params:{
  wd:this.wd
  },
  jsonp:'cb'
  }).then(res=>{
  console.log(res);
  this.arr=res.data.s;//把百度服务器返回的数据传给arr数组
  })
 },
 //监听鼠标的点击事件
 //如果鼠标点击某一行的文字,则点击事件中的event.explicitOriginalTarget.data代表关键词
 //如果点击某一行的空白处,则点击事件中的event.explicitOriginalTarget.innerText代表关键词
 //大家可以通过console.log(event)来查看关键词所在的位置
 click(event){
  console.log(event);
  if(event.explicitOriginalTarget.data!=undefined){
  this.wd=event.explicitOriginalTarget.data;
  window.open("https://www.baidu.com/s?wd="+this.wd);
  }else if(event.explicitOriginalTarget.innerText!=undefined){
  this.wd=event.explicitOriginalTarget.innerText;
  window.open("https://www.baidu.com/s?wd="+this.wd);
  }
 },
 //监听键盘的事件
 //如果按down,则增加当前listIndex+1,因此arr[this.listIndex]就能代表当前的词条
 //我们通过对listIndex的修改来得到当前词条在arr中的索引,然后就可以得到词条的具体信息,然后发送请求了
 keydown(event){
  console.log(event);
  //下键:40 上键:38
  if(event.keyCode==38){
  //按的上键
  this.listIndex--;
  if(this.listIndex<0){
  this.listIndex=this.arr.length-1;
  }
  this.wd=this.arr[this.listIndex];
  }
  else if(event.keyCode==40){
  //说明你按的是下键
  this.listIndex++;
  if(this.listIndex>this.arr.length-1){
  this.listIndex=0;
  }
  this.wd=this.arr[this.listIndex];
  }else if(event.keyCode==13){
  //如果你按的是enter,那么就跳转到百度搜索结果
  window.open("https://www.baidu.com/s?wd="+this.wd);
  }
 
 }
 }
 }
</script>
 
<style scoped>
 
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery与google map api结合使用 控件,监听器
Mar 04 Javascript
css结合js制作下拉菜单示例代码
Feb 27 Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 Javascript
跟我学习javascript创建对象(类)的8种方法
Nov 20 Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
你真的了解BOM中的history对象吗
Feb 13 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
浅谈vuejs实现数据驱动视图原理
Feb 23 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 #Javascript
Vue 中使用富文本编译器wangEditor3的方法
Sep 26 #Javascript
react实现同页面三级跳转路由布局
Sep 26 #Javascript
vue轮播组件实现$children和$parent 附带好用的gif录制工具
Sep 26 #Javascript
小程序调用微信支付的方法
Sep 26 #Javascript
细说webpack6 Babel的使用详解
Sep 26 #Javascript
微信小程序实现拖拽功能
Sep 26 #Javascript
You might like
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
图片自动更新(说明)
2006/10/02 Javascript
Javascript 篱式条件判断
2008/08/22 Javascript
ExtJs的Date格式字符代码
2010/12/30 Javascript
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
javascript实现计算器功能
2020/03/30 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
浅谈Python反射 &amp; 单例模式
2019/03/21 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
虚拟环境及venv和virtualenv的区别说明
2021/02/05 Python
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
仓库主管岗位职责
2014/03/02 职场文书
社区学习雷锋活动总结
2014/04/25 职场文书
班级课外活动总结
2014/07/09 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL