模拟百度跨域搜索

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            html,body{
                width: 100%;
            }
            #txt {
                width: 400px;
                height: 30px;
            }
            #list{
                width: 402px;
                border:1px solid #ccc ;
                border-top:0;
                display: none;
            }
            #list li{
                list-style: none;
                width: 100%;
                height: 25px;
                font-size: 14px;
                font-family: "微软雅黑";
                line-height: 25px;
            }
            #list li a{
                text-decoration: none;
                color: #ccc;
                display: block;
                width: 100%;
                height: 25px;
            }
            #list li a:hover{
                background: pink;
                color: #fff;
            }
            #list li a.active{
                background: cornflowerblue;
                color: red;
            }
            #box{
                width:500px ;
                margin: 100px auto;
                position: relative;
            }
            #btn{
                display: block;
                width: 100px;
                height: 34px;
                background: cornflowerblue;
                color: #fff;
                position: absolute;
                left:404px;
                top: 0;
                text-align: center;
                line-height: 34px;
                font-size: 14px;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <div id="box">
        <input type="text" name="txt" id="txt" value="" />
        <span id="btn">
            百度一下
        </span>
        <ul id="list">            
        </ul>
        </div>
        
        <script type="text/javascript">
            var oTxt = document.getElementById("txt");
            var oUl = document.getElementById("list");
            var oLi = oUl.getElementsByTagName('li');
            var oA = oUl.getElementsByTagName('a');
            var oBtn = document.getElementById("btn");
            var index = -1;    
            oTxt.onfocus = function(){    
                oTxt.onkeyup = function(ev){
                    ev = ev||event;
                if( ev.keyCode == '40' ){
                    for(var i = 0;i < oA.length;i++){   //***清空其他的***
                        oA[i].className = '';
                    }
                    index++;
                    if(index > oA.length-1){
                        index = 0;
                    }
                    oA[index].className = 'active';
                    oTxt.value = oA[index].innerHTML;
                    oTxt.onclick = function(){
                        create();
                        index =-1;
                    }
                    
                }else if(ev.keyCode == '38'){
                    for(var i = 0;i < oA.length;i++){
                        oA[i].className = '';
                    }
                    index--;
                    if(index < 0){
                        index = oA.length-1;
                    }
                    oA[index].className = 'active';
                    oTxt.value = oA[index].innerHTML;
                    oTxt.onclick = function(){
                        create();
                        index =-1;
                    }
                }else if(ev.keyCode == '13'){
                    if(index == -1){
                        open('https:www.baidu.com/s?wd='+oTxt.value,'_blank');
                    }else{
                        open(oA[index],'_blank');
                    }
                }
                else{
                    create();
                }
                oBtn.onclick = function(){
                    open('https:www.baidu.com/s?wd='+oTxt.value,'_blank');
                }
            }                
                
            }
            //创建script
            function create(){    
                    var val = oTxt.value;
                    var oScript = document.createElement('script');
                    /*内容就是一个函数调用*/
                    //相当于fn(data)调用,此时的src是跨域的地址:
                    //search({q:"\' val \'",p:false,s:["valentino","valid","validate","value","validation","valve","valak","valar morghulis","valgrind","validity"]});
                    oScript.src = 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+val+'&cb=search';
                    document.body.appendChild( oScript );
                    document.body.removeChild( oScript );    
                }
            function search( data ){     //相当于fn(){}定义
                var str = '';
                for( var i=0;i < data.s.length; i++){
                    str += '<li><a href="https://www.baidu.com/s?wd='+data.s[i]+'" target="_blank">'+data.s[i]+'</a></li>';                        
                }
                oUl.innerHTML = str;                
                oUl.style.display = 'block';
            }    
                
        </script>
    </body>
</html>

 

posted @ 2016-09-28 17:02  郑福坤  阅读(229)  评论(0编辑  收藏  举报