必威体育Betway必威体育官网
当前位置:首页 > IT技术

百度联想词搜索框完整实现

时间:2019-05-30 00:43:06来源:IT技术作者:seo实验室小编阅读:74次「手机版」
 

百度联想

本人git博客地址:博健的github博客地址

Ps:是一些阅读大牛文章后的总结和分享,欢迎大家查看~

新年分隔符--------------------

讲解如何利用百度接口仿写一个搜索联想词功能

1.首先写一个输入框(html部分十分简单)

    <p class="wrAPPer">
        <input type="text " id="btn">
        <ul>
        </ul>
    </p>

2.给它一个样式,可以贴近百度搜索框的样子。

        * {
            padding: 0;
            margin: 0;
        }
        .wrapper {
            position: absolute;
            margin-left: -260px;
            left: 50%;
            top: 30%;
        }
        #btn {
            width: 560px;
            padding: 10px 10px;
            border: 1px solid rgb(45, 129, 240);
        }

这里写图片描述

3.下面我们来写js部分

我们需要给输入浪添加一个事件onkeyup(会在键盘按键被松开时发生。)

步骤一:测试onkeyup事件,以识别我们输入的内容

        btn.onkeyup = function () {
            var value = this.value;
            console.log(value);
            }

效果如下:

这里写图片描述

步骤二:将我们输别的内容,引入联想词条。

        btn.onkeyup = function () {
            var value = this.value;
            // console.log(value);
            var oScript = document.createElement('script');
                oScript.src = 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=' + value + '&cb=aa'
                document.body.appendChild(oScript)
        }
        function aa(data) {
            console.log(data);
            }

这里我们所看到地址文件,是这样获取的:这里写图片描述

这么长的地址我们并不是全要的,我们只要wd=和cb等于部分 :比如:

https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=onkeyup&sugmode=2&json=1&p=3&sid=1443_26909_21081_26350_26925&req=2&bs=onkeyup&pbs=onkeyup&csor=7&pwd=onkeyup&cb=jQuery1102041548312872624815_1533627722834&_=1533627722871

它经过删除后为:https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=onkeyup&&cb=jQuery

步骤三:从输出我们可以看到,我们只需要传回来的数据s数组,所以我们对他进行遍历,拼接到<li>之中,并加他插入<ul>之中

        function aa(data) {
            console.log(data);
            oUl.style.display = 'block';
             var list = data.s;
             var str = '';
             list.foreach(function (ele, index) {
                str += '<li>' + ele + '</li>';
             });
             oUl.innerHTML = str;
             }

这样最基本的联想词就写出来了,但是我们需要对他进行包装。

步骤四:解决输入框无内容时列表消失问题

        btn.onkeyup = function () {
            var value = this.value;
            if (value) {
                var oScript = document.createElement('script');
                oScript.src = 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=' + value + '&cb=aa'
                document.body.appendChild(oScript);
                oScript.remove();//大家在之前会发现,随着你输入的东西越多,你创建的script标签就越多,我们在获取到它后直接移除即可。
            } else if(value == 0){
                oUl.style.display = 'none';
            }
        }

步骤五:在单一的li列表里,插入a标签,将其引流,可以做到与真实搜索功能一样。

        function aa(data) {
            oUl.style.display = 'block';
            var list = data.s;
            var str = '';
            if (list.length > 0) {
                list.forEach(function (ele, index) {
                    str += '<li><a href ="https://www.baidu.com/s?wd=' + ele +  '">' + ele + '</li>';
                })
                oUl.innerHTML = str;
            }else { 
                oUl.style.display = 'none';
            }

        }

千万别忘了,这里我没有讲解css的样式大家可以自由发挥,而且<a>自带样式,你需要自己调整,消除他的样式,整个布局跟随你的想法走,希望大家可以学会这一小demo。

相关阅读

数据结构之二叉排序树(C语言实现)

一、基本概念 1.二叉排序树 二叉排序树(Binary sort tree,BST),又称为二叉查找树,或者是一棵空树;或者是具有下列性质的二叉树: (1)若

如何用新浪微博做淘宝客,三步实现破零

第一步,注册一个有趣味的微博名字,如减肥瘦身百科,护肤美妆百科,美食营养百科。这样做的目的是便于搜索,目前也是女生关注最多的话题。

Python实现求二阶行列式

目录 题目描述 输入/输出描述 解决思路 代码 代码走读 传送门 测试用例 1. 输入的数据都是整型 2. 输入的数据存在非法字符 题

使用socks5实现简易代理服务器

写一个简易的socks5代理服务器,负责转发网络数据包,要能够使用它来上网。 SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器

CountDownLatch的实现

这是一个非常有意思的类,看下面的代码:CountDownLatch countDownLatch = new CountDownLatch(1); new Thread(new Runnable() {

分享到:

栏目导航

推荐阅读

热门阅读