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 写类方式之十
Jul 05 Javascript
json 实例详细说明教程
Oct 31 Javascript
通过javascript设置css属性的代码
Dec 28 Javascript
UserData用法总结 lanyu出品
Jul 01 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
JS防止网页被嵌入iframe框架的方法分析
Sep 13 Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 Javascript
electron demo项目npm install安装失败的解决方法
Feb 06 Javascript
JS将网址url转化为JSON格式的方法
Jul 02 Javascript
详解小程序用户登录状态检查与更新实例
May 15 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
Aug 26 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反射机制用法实例
2014/08/28 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php构造函数的继承方法
2015/02/09 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
thinkPHP框架通过Redis实现增删改查操作的方法详解
2019/05/13 PHP
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python实现获取Ip归属地等信息
2016/08/27 Python
python字典操作实例详解
2017/11/16 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
Python 支持向量机分类器的实现
2020/01/15 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
Python定时器线程池原理详解
2020/02/26 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
Python numpy矩阵处理运算工具用法汇总
2020/07/13 Python
java字符串格式化输出实例讲解
2021/01/06 Python
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
《雨点儿》教学反思
2014/04/14 职场文书
班长演讲稿范文
2014/04/24 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
七年级作文之冬景
2019/11/07 职场文书
业余无线电通联Q语
2022/02/18 无线电