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 相关文章推荐
js Html结构转字符串形式显示代码
Nov 15 Javascript
jquery使用append(content)方法注意事项分享
Jan 06 Javascript
自己使用jquery写的一个无缝滚动的插件
Apr 30 Javascript
学习JavaScript设计模式之单例模式
Jan 19 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
Mar 24 jQuery
bootstrap daterangepicker双日历时间段选择控件详解
Jun 15 Javascript
vue 中directive功能的简单实现
Jan 05 Javascript
ajax请求+vue.js渲染+页面加载的示例
Feb 11 Javascript
解决vue页面刷新或者后退参数丢失的问题
Mar 13 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
Oct 30 Javascript
微信小程序地图绘制线段并且测量(实例代码)
Jan 02 Javascript
JS Web Flex弹性盒子模型代码实例
Mar 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
Zend Framework开发入门经典教程
2016/03/23 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例
2017/04/13 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python环境下安装opencv库的方法
2020/03/05 Python
python把一个字符串切开的实例方法
2020/09/27 Python
让IE可以变相支持CSS3选择器
2010/01/21 HTML / CSS
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
HTML5中的音频和视频媒体播放元素小结
2016/01/29 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
经典促销广告词大全
2014/03/19 职场文书
工作说明书范文
2014/05/07 职场文书
员工年终自我评价
2014/09/14 职场文书
个人收入证明模板
2014/09/18 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
婚宴主持词
2015/06/30 职场文书