当前位置: 首页 > news >正文

原生JS实现百度搜索功能

  今天呢给大家分享一下自己用原生JS做的一个百度搜索功能,下面上代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <!--百度iocn图标-->
        <link rel="shortcut icon" href="https://www.baidu.com/favicon.ico" type="image/x-icon"/>
        <title>百度一下,你就知道</title>
        <style type="text/css">
            body{/*清除浏览器自带样式*/
                margin: 0;
                padding: 0;
            }
            .box{/*最大的盒子*/
                width: 100%;
                /*background: yellow;*/
                height: 636px;
                background-image:url("https://ss1.bdstatic.com/kvoZeXSm1A5BphGlnYG/skin/880.jpg?2");
                background-size: 100%;
                
            }
            .box_log{/*log盒子*/
                width: 100%;
            }
            
            .box_log img{/*百度log*/
                width: 19.8%;
                margin-left: 49.4%;
                transform: translate(-50%);
                margin-top: 38px;
                margin-bottom: 19px;
            }
            .box_text{/*text搜索框盒子大小*/
                width: 100%;
                height: 36px;
            }
            .log_img{/*input框中的小相机*/
                position: absolute;
                left: 865px;
                top: 202px;
            }
            #text{
                width: 540px;
                height: 36px;
                box-sizing: border-box;
                margin-left: 355px;
                margin-top: 3px;
                text-indent: 4px;
            }
            #btn{
                width: 100px;
                height: 36px;
                background: #3385FF;
                border: 0px;
                letter-spacing: 1px;
                color: white;
                margin-left: -5px;
                font-size: 15px;
                box-sizing: border-box;
                transform: translateY(2px);
                box-sizing: border-box;
            }
            #btn:hover{
                cursor: pointer;
            }
            #search{
                width: 540px;
                /*background: yellow;*/
                margin: 0;
                padding: 0;
                margin-left: 355px;
                list-style: none;
                display: none;
                border: 1px solid #E3E5E4; 
            }
            #search li{
                line-height: 36px;
                background: white;
            }
            #search li:hover{
                background: #F0F0F0;
            }
            .li1{
                text-indent: 4px;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="box_log">
                <img src="../img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png"/>
            </div>
            <div class="box_text">
                <img src="../img/QQ图片20180119115441.png" class="log_img"/>
                <input type="text" name="text" id="text" value=""/>
                <input type="button" name="bdyx" id="btn" value="百度一下" />
                <ul id="search">
                    <li class="li1" id="0" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="1" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="2" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="3" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="4" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="5" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="6" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="7" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="8" οnclick="iptShow(this.id)"></li>
                    <li class="li1" id="9" οnclick="iptShow(this.id)"></li>
                </ul>
            </div>
        </div>
        
        
        <script>
            var otext = document.getElementById("text");  //获取input框
            ose = document.querySelector("#search");  //通过类名选择器 选择到search框
            lis = document.getElementsByClassName("li1");  //获取所有的li
            otext.onkeyup = function(){   //当在input框中键盘弹起发生事件
                ose.style.display = otext.value?"block":"none";  /*三目运算符,如果otext.value的值部位空,则block。*/
                var osc = document.createElement("script");  /*创建一个script标签*/
                osc.src = "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd="+otext.value+"&cb=houxiaowei";
                /*srcipt的src值引入百度的url,然后将otext文本框中输入的内容连接到url,在后面在运行自己的方法*/
                document.body.appendChild(osc);
                /*将创建好的script标签元素放入body中*/
                
                
                /*input框中按下回车根据input的值跳转页面*/
                if(event.keyCode==13){
                    /*将百度作为连接,传入input的值,并跳入新的页面*/
                    window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext.value
                }
            }
            
            var count = 0;
            var search = 0;
            var arr = ose.children; /*获取ose下的所有li*/
            function houxiaowei(json){
                var jsonLength = 0;  /*json长度的初始值*/
//                    console.log(json.s);  打印json数据中的所有数据
                for(var x in json.s){   /*将循环的次数变成json的长度*/
                    jsonLength++;     
                }
//                    console.log(jsonLength);  打印json数据的长度
                for(var i=0;i<lis.length;i++){
                    if(jsonLength==0){  /*如果遍历出的长度等于0,li的值为空*/
                        arr[i].innerHTML = null;   
                    }else{
                        if(json.s[i]!=null){/*如果json[i]的值不等于空,则将它的值放入li中*/
                            arr[i].innerHTML = json.s[i];
                        }
                    }
                }
                if(count==lis.length-1){
                    count=0;
                    search=0;
                }
                count++;
                search++;
            }
            
            /*单击li中的值显示在input框中*/
            function iptShow(thisId){
                otext.value = arr[thisId].innerHTML;
                window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext.value
            }
            /*单击body中的任意地方隐藏li*/
            document.body.onclick = function(){
                ose.style.display = "none";
            }
        
            /*单击百度btn的时候触发,并跳到新的连接*/
            var btn = document.querySelector("#btn");
            btn.onclick = function(){
                /*获取当前input的值*/
                var otext = document.getElementById("text").value;
                /*将百度作为连接,传入input的值,并跳入新的页面*/
                window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext
            }  
        </script>
    </body>
</html>

 

转载于:https://www.cnblogs.com/houxiaowei/p/8323914.html

相关文章:

  • JavaScript:(a==1 a==2 a==3)能输出true么?
  • 阿里云启动API创新大赛 资源编排技术为场景赛题
  • 阿里云MaxCompute,用计算力让数据发声
  • Linux - ubuntu 设置固定ip和设置dns
  • 8-Socket网络编程
  • Linux下的tar压缩解压缩命令详解
  • CSS3第三天
  • SAP之ABAP吐槽
  • centos6.8 安装Python2.7后, yum出现“No module named yum”错误
  • 业界丨李飞飞达沃斯论坛直击,与美国银行、埃森哲CTO圆桌聊AI应用
  • SQLServer 进程无法向表进行大容量复制(错误号: 22018 20253)
  • 读懂 Deployment YAML - 每天5分钟玩转 Docker 容器技术(125)
  • [20180129]bash显示path环境变量.txt
  • 使用zabbix 监控nginx cache的缓存命中率(openresty版)
  • 栈实现走出迷宫(C++)
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • es6--symbol
  • javascript面向对象之创建对象
  • javascript数组去重/查找/插入/删除
  • Java知识点总结(JavaIO-打印流)
  • MySQL QA
  • mysql 数据库四种事务隔离级别
  • PhantomJS 安装
  • Sass Day-01
  • webgl (原生)基础入门指南【一】
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 看域名解析域名安全对SEO的影响
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 目录与文件属性:编写ls
  • 如何编写一个可升级的智能合约
  • 学习HTTP相关知识笔记
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​用户画像从0到100的构建思路
  • #include
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (搬运以学习)flask 上下文的实现
  • (二)Linux——Linux常用指令
  • (二)springcloud实战之config配置中心
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (十八)三元表达式和列表解析
  • (小白学Java)Java简介和基本配置
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .dwp和.webpart的区别
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上