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 相关文章推荐
基于jquery实现的类似百度搜索的输入框自动完成功能
Aug 23 Javascript
jQuery中slice()方法用法实例
Jan 07 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
Vue filters过滤器的使用方法
Jul 14 Javascript
使用mint-ui开发项目的一些心得(分享)
Sep 07 Javascript
基于Vue的延迟加载插件vue-view-lazy
May 21 Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
微信小程序从注册账号到上架(图文详解)
Jul 17 Javascript
前后端常见的几种鉴权方式(小结)
Aug 04 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
使用vue构建多页面应用的示例
Oct 22 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中header用法小结
2016/05/23 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
js 模拟气泡屏保效果代码
2010/07/10 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
AngularJs Understanding the Controller Component
2016/09/02 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
vue 页面跳转的实现方式
2021/01/12 Vue.js
python每隔N秒运行指定函数的方法
2015/03/16 Python
对于Python的Django框架部署的一些建议
2015/04/09 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python中django学习心得
2017/12/06 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
python+flask实现API的方法
2018/11/21 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
实习教师自我鉴定
2013/12/12 职场文书
教师学习培训邀请函
2014/02/04 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
2015年商场工作总结
2015/04/27 职场文书
联欢会开场白
2015/06/01 职场文书
开学第一周总结
2015/07/16 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript