1. 程式人生 > >JS呼叫百度api介面——實現簡單的百度頁面

JS呼叫百度api介面——實現簡單的百度頁面

描述:

JS呼叫百度api介面——實現簡單的百度頁面

效果:

實現:

css檔案:

@charset "utf-8";
/* CSS Document */
*{
    margin: 0;
    padding: 0;
    list-style: none;
}
.ss{
    border: 1px solid #000000;
}
.ss li
{
    /*border-bottom: 1px solid #999999;*/
    padding: 10px 20px;
    text-align: left;
}
.ss li:hover{
    background-color:#e2e2e2;
    cursor: pointer;
}
#top {
    float: right;
}

#top li{
    padding:10px;
    float: left;
}
#top a {
    color: #000000;
    font-size: 14px;
    font-weight: 600;
}
#top a:hover{color:#0A09BE}

#img_baidu {
    height: 150px;
    clear: both;
    display: block;
    margin: 0 auto;
    background: #FFFFFF;
}

#text_baidu {
    width: 680px;
    margin: 36px auto;
    position: relative;
    background: #FFFFFF;
}

#texts{
    width: 558px;
    height: 38px;
    left: 0;
    position: absolute;
    border: blue 1px solid;
}

#sub{
    width:120px;
    height: 40px;
    top: 0;
    right: 0;
    position: absolute;
    background:#467EE9;
    color: #FFFFFF;
    border-style: none;
    font-size: 16px;
}

#end {
    text-align: center;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100px;
    color: #9d9d9d;
    font-size: 12px;
    height: 80px;
    background: #FFFFFF;
}

#end p {
    color: #000000;
    font-size: 14px;
}

#end a {
    color: #9d9d9d;
    font-size: 12px;
}

html檔案:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="css/bd.css"/>

    <!--<script src="http://localhost:80/js/Method.js"></script>-->
</head>
<body>
<br>
    <div id="top" >
        <ul>
            <li> <a href="#">新聞 </a></li>
            <li> <a href="#">hao123 </a></li>
            <li> <a href="#">地圖 </a></li>
            <li> <a href="#">視訊 </a></li>
            <li> <a href="#">貼吧 </a></li>
            <li> <a href="#">學術 </a></li>
            <li> <a href="#">登入 </a></li>
            <li> <a href="#">設定 </a></li>
            <li> <a href="#">更多產品 </a></li>
        </ul>
    </div>

    <img src="images/bd_logo1.png" id="img_baidu">

    <div id="text_baidu">
        <form method="post" action="" name="bd">
            <input type="text" id="texts">
            <input type="button" value="百度一下" id="sub" >
        </form>
    </div>

    <div id="end">
        <div>
            <img src="images/zbios_efde696.png" width="60px">
            <p>百度</p>
        </div>

        <div>
            <a href="#">把百度設為主頁 </a>&nbsp;&nbsp;&nbsp; <a href="#">關於百度 </a>&nbsp;&nbsp;&nbsp; <a href="#">About  Baidu</a>&nbsp;&nbsp;&nbsp;<a href="#">百度推廣</a>&nbsp;&nbsp;&nbsp;<br>

            ©2018 Baidu <a href="#">使用百度前必讀 </a> &nbsp;&nbsp; <a href="#">意見反饋 </a>&nbsp;&nbsp;京ICP證030173號&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="#">京公網安備11000002000001號</a>&nbsp;&nbsp;&nbsp;
        </div>
    </div>
<script>
    /*
    *  1、cors
    *  2、jsonp解決
    *  3、websocket解決(不講解)
    *  (做一個本地服務,這個本地服務訪問跨域服務通訊,然後再傳給本地)中間介質跨域
    *
    *
    * */

    //        Method.$c("div",document.body);
    var script,ul,textSub;
    var texts=document.getElementById("texts");
    var textSub=document.getElementById("sub");

    texts.addEventListener("input",inputHandler);
    textSub.addEventListener("click",subClickHandler);

    function inputHandler(e) {
        search(texts.value);
    }

    function search(searchStr) {
        if(script){
            script.remove();
            script=null;
        }
        script=document.createElement("script");//百度API
        script.src="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd="+searchStr+"&json" +
            "=1&p=3&sid=22084_1436_13548_21120_22036_22073&req=2&csor=0&cb=callback";
        document.body.appendChild(script);
    }

    function callback(obj) {
        if(ul){
            ul.remove();
            ul=null;
        }
        ul=document.createElement("ul");
        ul.className="ss";
        ul.style.width=texts.clientWidth+"px";
        for(var i=0;i<6;i++){//搜素框內有幾個資料
            var li=document.createElement("li");
            li.textContent=obj.s[i];
            li.addEventListener("click",clickHandler);
            ul.appendChild(li);
        }
        ul.firstElementChild.style="padding-top:50px";//第一個顯示出來
        texts.parentElement.insertBefore(ul,texts.nextElementSibling);
    }

    function clickHandler(e) {//百度API
        location.href="https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=98012088_10_dg&wd="
            +this.textContent+"&rsv_pq=cb75ad3f00000fa1&rsv_t=e991pW4yEPgJGzdMD%2Bdfto2OgQRU12dPWLNRqfNP8twO5%2ByL0pdM%2BqfQ2UhzBJ5vXgzkVHU&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=8&rsv_sug7=101&rsv_sug2=0&inputT=1358&rsv_sug4=68195";
    }

    function subClickHandler(e) {//百度API
        location.href="https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=98012088_10_dg&wd="
            +texts.value+"&rsv_pq=cb75ad3f00000fa1&rsv_t=e991pW4yEPgJGzdMD%2Bdfto2OgQRU12dPWLNRqfNP8twO5%2ByL0pdM%2BqfQ2UhzBJ5vXgzkVHU&rqlang=cn&rsv_enter=1&rsv_sug3=8&rsv_sug1=8&rsv_sug7=101&rsv_sug2=0&inputT=1358&rsv_sug4=68195";
    }


</script>
</body>
</html>