利用jsonp实现百度联想词查询

所谓jsonp,就是json的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题,而接下来要写的案例就是利用了这个原理。

首先我们可以在百度查找中随便输入一些内容

  接着打开控制台的Network,便可看到如上图所示,接着复制Request URL的内容,箭头所指的内容其实就是搜索的函数,即cb=函数名,接着看如下代码

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        *{margin:0;padding:0;}
    .box{width:220px;
         height:40px;
         margin-top:50px;
         margin-left:200px;
         border:1px solid darkgoldenrod;
    }
    .list{width:220px;
          margin-left:200px;
          list-style: none;
    }
    </style>
</head>
 
<body>
    <input class="box" type="text"></div>
    <div class="list"></div>
 
    <script>
       var obox = document.getElementsByClassName("box")[0],
            list = document.getElementsByClassName("list")[0];
        obox.oninput = function () {
            var val = this.value;//获取输入框内容
            var os = document.createElement("script")
            os.src = `https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=${val}&cb=getdata`
            document.body.appendChild(os);
            os.onload = function () {
                document.body.removeChild(os)
            }
        }
        var getdata = function (data) {
            var str = '';
            for (let i = 0; i < data.s.length; i++) {
                str += `<li>${data.s[i]}</li>`
            }
            list.innerHTML = str
        }
 
    </script>
复制代码

由于控制台给出的函数太长我便换成了getdata函数,而wd=后面的其实就是搜索内容,这样便实现了联想词查找


转载于:https://juejin.im/post/5cc8e5c76fb9a0323b7e55bc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值