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实现定时刷新功能代码
May 09 jQuery
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
基于jQuery的表单填充实例
Aug 22 jQuery
关于jQuery里prev()的简单操作代码
Oct 27 jQuery
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
jQuery 点击获取验证码按钮及倒计时功能
Sep 20 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
jQuery操作元素的内容和样式完整实例分析
Jan 10 jQuery
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 jQuery
jquery实现异步文件上传ajaxfileupload.js
Oct 23 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
php 禁止页面缓存输出
2009/01/07 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
python发送邮件功能实现代码
2016/07/15 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
python简单操作excle的方法
2018/09/12 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
华纳兄弟工作室的官方授权商店:WB Shop
2018/11/30 全球购物
会计实习期自我鉴定
2013/10/06 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
双拥工作宣传标语
2014/06/26 职场文书
冰峪沟导游词
2015/02/09 职场文书
Python中with上下文管理协议的作用及用法
2022/03/18 Python
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers