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 相关文章推荐
JavaScript类属性的访问方式详解
Feb 11 Javascript
jquery图片切换实例分析
Apr 15 Javascript
JavaScript中SetInterval与setTimeout的用法详解
Nov 10 Javascript
基于pako.js实现gzip的压缩和解压功能示例
Jun 13 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
AngularJS实现的自定义过滤器简单示例
Feb 02 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 27 Javascript
详解js中let与var声明变量的区别
Apr 05 Javascript
js实现批量删除功能
Aug 27 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 30 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
请离开include_once和require_once
2013/07/18 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
Python中修改字符串的四种方法
2018/11/02 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
Python进行统计建模
2020/08/10 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
化工专业推荐信范文
2013/11/28 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
运动会加油稿30字
2015/07/21 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
旅行社计调工作总结
2015/08/12 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python