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 29 jQuery
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
jQuery列表检索功能实现代码
Jul 17 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
jQuery创建折叠式菜单
Jun 15 jQuery
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 jQuery
jQuery实现简单飞机大战
Jul 05 jQuery
jQuery中getJSON跨域原理的深入讲解
Sep 02 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
咖啡的种类和口感
2021/03/03 新手入门
php array_map()数组函数使用说明
2011/07/12 PHP
php生成图片验证码的方法
2016/04/15 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
解决vue中虚拟dom,无法实时更新的问题
2018/09/15 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
javascript防抖函数debounce详解
2019/06/11 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
python排序方法实例分析
2015/04/30 Python
python类中super()和__init__()的区别
2016/10/18 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
班组长岗位职责
2014/03/03 职场文书
销售团队口号大全
2014/06/06 职场文书
要账委托书范本
2014/09/15 职场文书
铁路安全反思材料
2014/12/24 职场文书
追悼会答谢词
2015/01/05 职场文书
农业项目合作意向书
2015/05/08 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书