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实现文字打印动态效果
Apr 21 jQuery
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
May 13 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
jQuery实现侧边栏隐藏与显示的方法详解
Dec 22 jQuery
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
Feb 27 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
详解JQuery基础动画操作
Apr 12 jQuery
jQuery实现的分页插件完整示例
May 26 jQuery
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
jQuery插件实现图片轮播效果
Oct 19 jQuery
jQuery实现电梯导航模块
Dec 22 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
基于mysql的论坛(4)
2006/10/09 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
2019/05/27 Python
python中while和for的区别总结
2019/06/28 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
HTML5之语义标签介绍
2016/07/07 HTML / CSS
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
领导证婚人证婚词
2014/01/13 职场文书
访谈节目策划方案
2014/05/15 职场文书
工作作风承诺书
2014/08/30 职场文书
公司委托书格式范本
2014/09/16 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
高中家长意见怎么写
2015/06/03 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
MySQL infobright的安装步骤
2021/04/07 MySQL