本文主要和大家介绍js实现百度搜索功能,代码分为html部分和css折叠样式部分,具体实现代码大家参考下本文,希望能帮助到大家。
今天我们来用JS实现百度搜索功能,下面上代码:
HTML部分:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!--百度iocn图标--> <link rel="shortcut icon" href="https://www.baidu.com/favicon.ico" rel="external nofollow" type="image/x-icon"/> <title>百度一下,你就知道</title> <link rel="stylesheet" href="css/baidu.css" rel="external nofollow" /> <script src="js/H.js"></script> </head> <body onload="onloads(),randomBack()"> <p class="box"> <p class="box_log"> <p class="box_log_img"> <img src="img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png"/> </p> </p> <p class="box_text"> <p class="box_text_content"> <input type="text" name="text" id="text" value="" autofocus="autofocus"/> <input type="button" name="bdyx" id="btn" value="百度一下" /> <ul id="search"> <li class="li1" id="0" onclick="iptShow(this.id)"></li> <li class="li1" id="1" onclick="iptShow(this.id)"></li> <li class="li1" id="2" onclick="iptShow(this.id)"></li> <li class="li1" id="3" onclick="iptShow(this.id)"></li> <li class="li1" id="4" onclick="iptShow(this.id)"></li> <li class="li1" id="5" onclick="iptShow(this.id)"></li> <li class="li1" id="6" onclick="iptShow(this.id)"></li> <li class="li1" id="7" onclick="iptShow(this.id)"></li> <li class="li1" id="8" onclick="iptShow(this.id)"></li> <li class="li1" id="9" onclick="iptShow(this.id)"></li> </ul> </p> </p> </p> <script type="text/javascript" src="js/index.js" ></script> </body> </html>
CSS层叠样式部分:
body{/*清除浏览器自带样式*/ margin: 0; padding: 0; /*background-repeat: no-repeat;*/ min-width: 1200px; } .box{/*最大的盒子*/ width: 100%; height: 100%; /*background: yellow;*/ /*height: 636px;*/ } .box_log{/*log盒子*/ width: 100%; height: 250px; text-align: center; } .box_log_img{ margin:0 auto; width: 300px; height: 150px; } .box_log img{ width: 300px; height: 150px; margin-top: 38px; margin-bottom: 19px; } .box_text{/*text搜索框盒子大小*/ width: 100%; height: 36px; } .box_text_content{ width: 640px; height: 36px; margin: 0 auto; } #text{ /*input框的样式*/ width: 540px; height: 36px; box-sizing: border-box; margin-top: 3px; text-indent: 4px; outline: none; } .log_img{/*input框中的小相机*/ position: absolute; left: 62%; top: 35.5%; } #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(1.5px); box-sizing: border-box; } #btn:hover{ /*当按钮hover的样式*/ cursor: pointer; } #search{ /*搜索框的样式*/ width: 540px; margin: 0; padding: 0; list-style: none; display: none; border: 1px solid #E3E5E4; } #search li{ /*搜索框li的大小颜色*/ line-height: 36px; background: white; } #search li:hover{ /*当li hover的样式*/ background: #F0F0F0; } .li1{ /*li中的值缩进*/ text-indent: 4px; }
JS部分:
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); for(var x in json.s){ /*将循环的次数变成json的长度*/ jsonLength++; } // console.log(jsonLength); 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 } otext.onclick = function(e){ ose.style.display = "block"; var e = event || window.event; e.stopPropagation(); //阻止冒泡事件,除了IE8及以下不兼容,其他浏览器都兼容 e.cancelBubble=true; //阻止冒泡事件,IE8及以下兼容 // alert(e); } /*单击body中的任意地方隐藏li*/ document.body.onclick = function(){ ose.style.display = "none"; } /*单击百度btn的时候触发,并跳到新的连接*/ var btn = document.querySelector("#btn"); cookies = []; btn.onclick = function(){ /*获取当前input的值*/ var otext = document.getElementById("text").value; /*将百度作为连接,传入input的值,并跳入新的页面*/ if(otext=="" || otext==null){ window.location.href = "http://127.0.0.1:8020/%E7%99%BE%E5%BA%A6/%E7%99%BE%E5%BA%A6%E9%A6%96%E9%A1%B5.html?__hbt=1516599867084"; }else{ window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext } } /*加载页面input为空*/ function onloads(){ var s = otext.value = null; $myId("text").focus(); } function randomBack(){ var randomBk = parseInt(Math.random()*545); document.body.style.background = "url(https://ss3.bdstatic.com/lPoZeXSm1A5BphGlnYG/skin/"+randomBk+".jpg?2)"; document.body.style.backgroundSize = "100%"; }‘“
搜索功能的实现源于百度的 https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd="+otext.value+"&cb=houxiaowei,这个链接,其中”wd”的值为input框中需要搜索的值,它会返回一个json对象。&cb的值是一个方法或者是函数,它用来将json中的值提取出来放入li中。
相关推荐:
以上是实例讲解JS如何实现百度搜索功能的详细内容。更多信息请关注PHP中文网其他相关文章!

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器