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 03 jQuery
详谈jQuery.load()和Jsp的include的区别
Apr 12 jQuery
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 jQuery
jquery实现提示语淡入效果
May 05 jQuery
JQuery Ajax 异步操作之动态添加节点功能
May 24 jQuery
jQuery.form.js的使用详解
Jun 14 jQuery
jqueryUI tab标签页代码分享
Oct 09 jQuery
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
jQuery+PHP实现上传裁剪图片
Jun 29 jQuery
基于jquery实现彩色投票进度条代码解析
Aug 26 jQuery
jquery插件懒加载的示例
Oct 24 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
Apache设置虚拟WEB
2006/10/09 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
smarty简单入门实例
2014/11/28 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
js CSS操作方法集合
2008/10/31 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
vue2.0实现前端星星评分功能组件实例代码
2018/02/12 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
python 文件和路径操作函数小结
2009/11/23 Python
Python生成随机验证码的两种方法
2015/12/22 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
使用Pycharm分段执行代码
2020/04/15 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
日语专业推荐信
2013/11/12 职场文书
小学家长会邀请函
2014/01/23 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android