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插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
基于jQuery实现瀑布流页面
Apr 11 jQuery
jquery拖动改变div大小
Jul 04 jQuery
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
jQuery获取table表中的td标签(实例讲解)
Jul 28 jQuery
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 jQuery
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
jQuery 动画与停止动画效果实例详解
May 19 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验证码类实例分享
2013/12/27 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php实现可运算的验证码
2015/11/10 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
Angular(5.2-&gt;6.1)升级小结
2018/12/27 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python的exec、eval使用分析
2017/12/11 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
员工拓展培训方案
2014/02/15 职场文书
公司费用报销管理制度
2015/08/04 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
java设计模式--原型模式详解
2021/07/21 Java/Android