美文网首页
使用jsonP实现百度关键词下拉提示

使用jsonP实现百度关键词下拉提示

作者: seporga | 来源:发表于2017-07-07 15:34 被阅读0次

    使用到的百度jsonP接口地址:
    http://suggestion.baidu.com/su?wd=关键词(aa)&cb=回调函数名(callback)

    使用这个格式请求时,会得到一个回调函数(这里使用的关键词是aa,回调函数名是callback):

    callback({q: "aa", p: false,…});
    p
    :
    false
    q
    :
    "aa"
    s
    :
    ["aape官网", "aaa", "aabc形式的词语", "aape", "aac", "aae", "aa电池", "aar", "aas", "aabb"]
    0
    :
    "aape官网"
    1
    :
    "aaa"
    2
    :
    "aabc形式的词语"
    3
    :
    "aape"
    4
    :
    "aac"
    5
    :
    "aae"
    6
    :
    "aa电池"
    7
    :
    "aar"
    8
    :
    "aas"
    9
    :
    "aabb"
    
    

    html代码:

    <p>使用jsonP实现百度关键词下拉提示</p>
    
    <input type="text" name="" id="wd" autofocus>
    
    <ul id="ul1">下拉框,用于存放返回的关键词</ul>
    

    CSS代码:

    <style>
            p{
                color: #bf6900;
                font-size: 24px;
            }
    
            #wd{
                border: none;
                padding-left: 5px;
                line-height: 40px;
                font-size: 24px;
                border: 1px solid #aaaaaa;
                border-color: #bf6900;
                width: 394px;
                height: 40px;
                outline: none;
            }
    
            #ul1{
                padding: 0;
                margin: 0;
                width: 400px;
                border: 1px solid #bf6900;
                display: none;
            }
    
            #ul1 li a{
                font-size: 24px;
                padding: 5px 0;
                text-decoration: none;
                display: block;
                color: #bf6900;
                padding-left: 5px;
            }
    
            #ul1 li a:hover{
                color: white;
                background-color: #bf6900;
            }
        </style>
    

    javascript代码:

    <script>
            //回调函数,需定义为全局函数
            function callback(data){
                var oUl1 = document.getElementById('ul1');
                var html = '';
    
                if (data.s.length!=''){
                    //将返回的数据插入下拉框中
                    oUl1.style.display = 'block';
                    for(var i=0;i<data.s.length;i++){
                        html +='<li><a target="#data" href="http://www.baidu.com/s?wd='+data.s[i]+'">'+ data.s[i] +'</a></li>';
                    }
                    oUl1.innerHTML = html;
    
                }else{
                    //没有匹配的关键词时,隐藏下拉框
                    oUl1.style.display = 'none';
                }
            }
    
            window.onload = function () {
                var ul1 = document.getElementById('ul1');
                var wd = document.getElementById('wd');
    
                //按键弹起触发jsonP请求
                wd.onkeyup = function () {
                    if (this.value!=''){
                        var oScript = document.createElement('script');
                        oScript.src = 'http://suggestion.baidu.com/su?wd='+this.value+'&cb=callback';
                        document.body.appendChild(oScript);
                    }else {
                        ul1.style.display = "none";
                    }
                }
            }
        </script>
        
    

    效果如下:


    效果图

    相关文章

      网友评论

          本文标题:使用jsonP实现百度关键词下拉提示

          本文链接:https://www.haomeiwen.com/subject/vgfrcxtx.html