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加载页面的方法(页面加载完成就执行)
Jun 21 Javascript
使用javascript创建快捷方式的简单实例
Aug 09 Javascript
javascript full screen 全屏显示页面元素的方法
Sep 27 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
Jun 16 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
Mar 23 jQuery
React router动态加载组件之适配器模式的应用详解
Sep 12 Javascript
vue项目引入Iconfont图标库的教程图解
Oct 24 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
May 22 Javascript
JS实现随机抽取三人
Nov 06 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 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 array_search() 函数使用
2010/04/13 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
python中metaclass原理与用法详解
2019/06/25 Python
Python循环实现n的全排列功能
2019/09/16 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
详解字符串在Python内部是如何省内存的
2020/02/03 Python
Python编写单元测试代码实例
2020/09/10 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
HTML5 表单验证失败的提示语问题
2017/07/13 HTML / CSS
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
食品营养与检测应届生求职信
2013/11/08 职场文书
计算机专业毕业生的自我评价
2013/11/18 职场文书
酒店总经理欢迎词
2014/01/08 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
汽车转让协议书
2015/01/29 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android
Python序列化模块JSON与Pickle
2022/06/05 Python