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学习笔记4 Eval函数
Jan 11 Javascript
分享一个asp.net pager分页控件
Jan 04 Javascript
第五章之BootStrap 栅格系统
Apr 25 Javascript
Angular利用trackBy提升性能的方法
Jan 26 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
jQuery 导航自动跟随滚动的实现代码
May 30 jQuery
element-ui 中的table的列隐藏问题解决
Aug 24 Javascript
vue中promise的使用及异步请求数据的方法
Nov 08 Javascript
laypage.js分页插件使用方法详解
Jul 27 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 Javascript
Jquery $.map使用方法实例详解
Sep 01 jQuery
JavaScript实现打字游戏
Feb 19 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
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
让微信小程序支持ES6中Promise特性的方法详解
2017/06/13 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
学习python处理python编码问题
2011/03/13 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
Python基于matplotlib绘制栈式直方图的方法示例
2017/08/09 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
python批量修改ssh密码的实现
2019/08/08 Python
python实现ip地址的包含关系判断
2020/02/07 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
canvas实现有递增动画的环形进度条的实现方法
2019/07/10 HTML / CSS
幼师自荐信范文
2013/10/06 职场文书
如何写一封打动人心的求职信
2014/02/17 职场文书
市级优秀班主任事迹材料
2014/05/13 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
同学聚会邀请函
2015/01/30 职场文书
简历中自我评价范文
2015/03/11 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
Python中else的三种使用场景
2021/06/16 Python
MySQL窗口函数的具体使用
2021/11/17 MySQL