jQuery使用jsonp实现百度搜索的示例代码


Posted in jQuery onJuly 08, 2020

项目实现:还原百度搜索功能;

项目原理:利用json回调页面传参;

什么是jsonp:就是利用<script>标签的src地址,让目标页面回调本地页面,并且带入参数,也解决了跨域问题;

代码如下:

html(css代码不提供)

<div class="box">
    <input type="text" />
    <div class="ssk"></div>
    <button>×</button>
 </div>

js

var script,ids;
   $(".box>input").on("input",inputHandler)
   function inputHandler(e){
    if (ids) return;
    ids = setTimeout(function () {//节流
     clearTimeout(ids);
     ids=0;
     if (script) { //删除上一次创建script标签
      script.remove();
      script = null;
     }
     script=$("<script><\/script>").attr("src",`https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=
        ${$(".box>input").val()}





&json=1&p=3&sid=22084_1436_13548_21120_22036_22073&req=2&csor=0&cb=callback`
     ).appendTo("body");
     // 点击x按钮删除搜索框内容,并且隐藏button按钮
     $("button").click(function () {
      $("input").val("");
      $("button").css("display", "none");
     });
     // 如果搜索框为空则把x按钮隐藏
     if ($("input").val().length === 0) {
      $("button").css("display", "none");
     } else {
      $("button").css("display", "block");
     }

    }, 500);
   }
   function callback(data) {
    if (data) {
     $(".box>.ssk").css("display", "block");
    }
    // 删除上一次的搜索列表
    if ($(".ssk").children().length !== 0) {
     $("a").remove();
    }
    // 遍历数组内容输出
    $.each(data.s, function (index, item) {
     $("<a>"+item+"</a>").appendTo(".box>.ssk");
     $("a").attr('href','https://www.baidu.com/s?tn=02003390_43_hao_pg&isource=infinity&wd='+encodeURIComponent(item));
    });
    // 失去焦点隐藏搜索列表
    $(".box>.ssk").on("mouseleave", function () {
     $(".box>.ssk").css("display", "none");
    });
   }
  • 这里目标页面是“https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&json=1&p=3&sid=22084_1436_13548_21120_22036_22073&req=2&csor=0&cb=callback” 向百度服务器请求
  • callback函数为目标服务器的回调函数,传回来的参数data是一个对象;
  • callback回调函数中,传回来的data中s属性是搜索到的内容,遍历data.s数组,将每个元素的外层添加a标签,a标签的超链接为搜索到的内容,
  • 改变a标签超链接的wd属性就可以搜索到对应的内容;wd传入的值需要进行编码(encodeURIComponent)处理,服务器才能给出对应内容的超链接

日常百度搜索都有wd属性,改变wd属性即可得到搜索

jQuery使用jsonp实现百度搜索的示例代码

最终效果:

jQuery使用jsonp实现百度搜索的示例代码

以上就是jQuery使用jsonp实现百度搜索的示例代码的详细内容,更多关于jQuery实现百度搜索的资料请关注三水点靠木其它相关文章!

jQuery 相关文章推荐
jQuery实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
jquery.validate表单验证插件使用详解
Jun 21 jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
jQuery实现简单日期格式化功能示例
Sep 19 jQuery
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 jQuery
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
jQuery实现鼠标移入显示蒙版效果
Jan 11 jQuery
jQuery 实现扁平式小清新导航
Jul 07 #jQuery
jQuery 动态粒子效果示例代码
Jul 07 #jQuery
jQuery实现简单飞机大战
Jul 05 #jQuery
jQuery实现简单日历效果
Jul 05 #jQuery
jQuery实现飞机大战小游戏
Jul 05 #jQuery
jquery实现上传图片功能
Jun 29 #jQuery
jQuery实时统计输入框字数及限制
Jun 24 #jQuery
You might like
PHP 实例化类的一点摘记
2008/03/23 PHP
php array_merge下进行数组合并的代码
2008/07/22 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
图解js图片轮播效果
2015/12/20 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
讲解python参数和作用域的使用
2013/11/01 Python
python数据封装json格式数据
2018/03/04 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
《观舞记》教学反思
2014/04/16 职场文书
新教师个人工作总结
2015/02/06 职场文书
如何写辞职信
2015/05/13 职场文书
就业证明函
2015/06/17 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书