JS调用百度api接口——实现简单的百度页面

127 篇文章 2 订阅
111 篇文章 1 订阅

描述:

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>

 

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我了解您的需求了。以下是可能的实现方案: 1. 使用HTML+CSS实现页面布局 您可以使用HTML和CSS来创建一个基本的页面布局,其中包含一个搜索框和一个百度热搜列表。您可以使用CSS网格或Flexbox等技术来定位和布局页面元素。 2. 弹出百度热搜索引 您可以使用JavaScript编写代码,以便在页面加载时调用百度API来获取热门搜索列表。您可以使用XMLHttpRequest或fetch等技术来进行API调用,并将结果显示在页面上。 3. 使用闭包的方式实现鼠标单击某个百度热搜列表显示对应索引 在JavaScript中,闭包是一个函数和与其相关的引用环境的组合。您可以使用闭包来实现单击百度热搜列表项时显示对应索引的功能。具体实现方法如下: - 在循环中为每个列表项创建一个闭包,并在闭包中保存该项的索引。 - 将闭包绑定到每个列表项的单击事件上。 - 当用户单击列表项时,调用相应的闭包并显示保存的索引。 下面是一个简单的示例代码,可以帮助您了解如何使用闭包来实现这个功能: ``` // 获取热门搜索列表 const hotSearchList = getHotSearchList(); // 将列表显示在页面上 const listContainer = document.getElementById('list-container'); hotSearchList.forEach((item, index) => { const listItem = document.createElement('li'); listItem.textContent = item.title; // 创建闭包并绑定到单击事件上 const handleClick = (function() { const itemIndex = index; return function() { alert(`您单击了第 ${itemIndex + 1} 个列表项!`); } })(); listItem.addEventListener('click', handleClick); listContainer.appendChild(listItem); }); ``` 希望这个方案能够满足您的需求!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值