模拟的百度搜索的搜索栏,输入数据时会在百度库里提取关键词数组,加入到输入框下面的列表中,可以回车跳转,点击跳转
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>百度搜索</title> <style type="text/css"> *{ margin: 0; padding: 0; } #box{ width: 400px; margin: 200px auto; } #text{ display: block; width: 400px; height: 40px; } #list{ display: none; width: 402px; border: 1px solid #ccc; } #list li{ list-style: none; width: 100%; height: 25px; line-height: 25px; font-family: "微软雅黑"; font-size: 14px; } #list li a{ display: block; width: 100%; height: 25px; line-height: 25px; text-decoration: none; color: #000; } #list li a.active{ background: #9cf; color: red; } </style> </head> <body> <div id="box"> <input type="text" id="text" /> <ul id="list"> </ul> </div> <script type="text/javascript"> var oText = document.getElementById("text"); var oList = document.getElementById("list"); var oLi = document.getElementsByTagName(\'li\'); var oA = document.getElementsByTagName(\'a\'); var n = -1; for( var i = 0;i<oA.length;i++ ) { oA[i].index = i; oA[i].onmouseover = function(){ for( var j = 0 ;j<oA.length;j++ ) { oA[j].className = \'\'; } oA[this.index].className = \'active\'; } } oText.onfocus = function(){ oText.onkeyup = function(ev){ ev = ev || event; if( ev.keyCode == \'38\' ) //向上键 { for( var j = 0 ;j<oA.length;j++ ) { oA[j].className = \'\'; } n--; if( n == -1 ) { n = oA.length-1; } oText.value = oA[n].innerHTML; oA[n].className = \'active\'; }else if( ev.keyCode == \'40\' ) //向下键 { for( var j = 0 ;j<oA.length;j++ ) { oA[j].className = \'\'; } n++; if( n == oA.length ) { n = 0; } oText.value = oA[n].innerHTML; oA[n].className = \'active\'; }else if( ev.keyCode == \'13\' ){ open( \'https://www.baidu.com/s?wd=\'+oText.value , \'_self\' ); //打开搜索关键字的网页 }else{ var val = oText.value; oList.style.display = \'block\'; var oScirpt = document.createElement(\'script\'); //cb为回调函数callback oScirpt.src = \'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=\'+val+\'&cb=search\'; document.body.appendChild( oScirpt ); document.body.removeChild(oScirpt); //删除后通过回调函数调用search方法 } } } //向形成的列表中添加内容 function search( data ){ var str = \'\'; for( var i = 0;i<data.s.length;i++ ) { str += \'<li><a href="https://www.baidu.com/s?wd=\'+data.s[i]+\'">\'+data.s[i]+\'</a></li>\' } oList.innerHTML = str; } </script> </body> </html>