jsonp实现百度下拉框功能的方法分析


Posted in Javascript onMay 10, 2019

本文实例讲述了jsonp实现百度下拉框功能的方法。分享给大家供大家参考,具体如下:

思路就是获取用户输入,然后根据用户输入调用百度的一个接口jsonp实现跨域请求,然后将百度返回给的内容渲染数据到视图。需要注意的就是,发送请求的时候记得编码用户输入的内容

var obj=document.querySelector('#user-input');
var body=document.querySelectorAll('body')[0];
var ul=document.querySelector('#ul');
var inner='';
function render(data){
    //删除前一次请求的li的内容
    if(ul.innerHTML!=''){
      ul.innerHTML='';
    }
    for(let i = 0, length1 = data.s.length; i < length1; i++){
      var li=document.createElement('li');
      li.innerHTML=data.s[i];
      ul.appendChild(li);
    }
}
obj.addEventListener('keyup',function(){
    if(document.querySelector('#request')){
      body.removeChild(document.querySelector('#request'));
    }
      var script=document.createElement('script');
      script.id="request";
      script.src="http://unionsug.baidu.com/su?wd="+encodeURI(obj.value.trim())+'&p=3&cb=render';
      body.appendChild(script);
});
//利用冒泡添加事件。
ul.addEventListener('click',function(e){
    var e=e||window.event;
    window.location.href="https://www.baidu.com/s?word=" rel="external nofollow" +encodeURI(e.target.innerHTML);
});
<style type="text/css">
  *{
          margin: 0;
          padding: 0;
  }
  ul{
          margin-left: 10px;
          transition: all 1s ease;
  }
    input{
          width: 300px;
          height: 40px;
          line-height: 40px;
          background: #4caf50a6;
          outline: none;
          border: none;
          border-radius: 10px;
          padding-left: 15px;
          color: white;
          font-size: 20px;
    }
    li{
          cursor: pointer;
          transition: all 1s ease;
          list-style: none;
          width: 280px;
          height: 30px;
          line-height: 30px;
          background: #8acb8da8;
          color: #888e4a;
          padding-left: 10px;
    }
    li:hover{
          background: #64a968;
          color: #caf1cc;
    }
    input::-webkit-input-placeholder{
      color:white;
    }
    input::-moz-placeholder{  /* Mozilla Firefox 19+ */
      color:white;
    }
    input:-moz-placeholder{  /* Mozilla Firefox 4 to 18 */
      color:white;
    }
    input:-ms-input-placeholder{ /* Internet Explorer 10-11 */ 
      color:white;
    }
</style>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
在网页中控制wmplayer播放器
Jul 01 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
通过js简单实现将一个文本内容转译成加密文本
Oct 22 Javascript
详解JavaScript中基于原型prototype的继承特性
May 05 Javascript
AngularJS入门教程之更多模板详解
Aug 19 Javascript
详解vue表单验证组件 v-verify-plugin
Apr 19 Javascript
判断颜色是否合法的正则表达式(详解)
May 03 Javascript
微信小程序 POST请求的实例详解
Sep 29 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
Sep 12 Javascript
node.JS事件机制与events事件模块的使用方法详解
Feb 06 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 Javascript
如何手写简易的 Vue Router
Oct 10 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
May 10 #Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 #Javascript
Angular4.0动画操作实例详解
May 10 #Javascript
Angular 2使用路由自定义弹出组件toast操作示例
May 10 #Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 #Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
May 10 #Javascript
Vue项目中配置pug解析支持
May 10 #Javascript
You might like
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
jQuery 加上最后自己的验证
2009/11/04 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
JavaScript实现列表分页功能特效
2015/05/15 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
JS无缝滚动效果实现方法分析
2016/12/21 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
JavaScript算法学习之冒泡排序和选择排序
2019/11/02 Javascript
跟老齐学Python之复习if语句
2014/10/02 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
Python制作词云的方法
2018/01/03 Python
Python检测数据类型的方法总结
2019/05/20 Python
Python简易版图书管理系统
2019/08/12 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
英国计算机商店:Technextday
2019/12/28 全球购物
商场促销活动方案
2014/02/08 职场文书
函授生自我鉴定
2014/03/25 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
财务务虚会发言材料
2014/10/20 职场文书
学生个人总结范文
2015/02/15 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
Pytorch 如何实现LSTM时间序列预测
2021/05/17 Python
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
Python实战之实现简易的学生选课系统
2021/05/25 Python
python编程实现清理微信重复缓存文件
2021/11/01 Python
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js