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 相关文章推荐
JavaScript中的Math 使用介绍
Apr 21 Javascript
基于jQuery实现仿51job城市选择功能实例代码
Mar 02 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
May 12 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
Nov 21 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
微信小程序新增的拖动组件movable-view使用教程
May 20 Javascript
jQuery实现手势解锁密码特效
Aug 14 jQuery
AngularJS实现的select二级联动下拉菜单功能示例
Oct 25 Javascript
JavaScript ES6常用基础知识总结
Feb 09 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
Aug 03 Javascript
three.js显示中文字体与tween应用详析
Jan 04 Javascript
小程序实现侧滑删除功能
Jun 25 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
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
2014/11/15 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
关于php开启错误提示的总结
2019/09/24 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
python进阶教程之循环对象
2014/08/30 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
python Django模板的使用方法
2016/01/14 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
Python如何批量生成和调用变量
2020/11/21 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
求职信需要的五点内容
2014/02/01 职场文书
护理不良事件检讨书
2014/02/06 职场文书
置业顾问岗位职责
2014/03/02 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
任长霞观后感
2015/06/16 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
ICOM R71E和R72E图文对比解说
2022/04/07 无线电