Baidu Suggestion 百度搜索(仅功能实现,烂版)

<!doctype html> <head> <meta http-equiv="content-type" content="text/html; charset=GBK"> <title> </title> </head> <body> <style > *{padding:0;margin:0;border:none;} ul,li{list-style-type:none;} .searchwrap{margin:20px auto;height:25px;width:355px;position:relative;} #search{border:1px solid #7b9abd;font-size:14px;height:25px;line-height:25px;padding:2px 0 0 2px;width:355px} #search:focus{border-color:#f60;} #searchlists{display:none;position:absolute;left:0;top:28px;background-color:#f9fdff;border:1px solid #7b9abd;color:#000;line-height:normal;width:357px;z-index:9;} </style> <!--百度搜索--> <div class="searchwrap"> <input type="text" name="search" id="search" value="" autocomplete='off' /> <ul id="searchlists"> </ul> </div> <!--/百度搜索--> <script> //Baidu Suggestion 回调函数 var BaiduSuggestion={}; BaiduSuggestion.callbacks={}; BaiduSuggestion.callbacks.give1336633927770=null; //一些工具函数 var _$ = function (id) { return typeof id === "string" ? document.getElementById(id) : id; }, _$$ = function (tagName, oParent) { return (oParent || document).getElementsByTagName(tagName); }, loadJs=function(url, onsuccess, options) { options = options || {}; var head = document.getElementsByTagName('head')[0] || document.documentElement, script = document.createElement('script'), done = false; script.src = url; if (options.charset) { script.charset = options.charset; } script.onerror = script.onload = script.onreadystatechange = function() { if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) { done = true; if (onsuccess) { onsuccess(); } script.onerror = script.onload = script.onreadystatechange = null; head.removeChild(script); } }; head.insertBefore(script, head.firstChild); }; //定义Baidu Suggestion var query=function (url,list,txt){ var index=-1, list=_$(list), txt=_$(txt), setStyle = function(el, pro, val) { var el = _$(el),len = arguments.length; if (len === 3) { el.style[pro] = val; } if (len === 2) { for (attr in pro) { el.style[attr] = pro[attr]; } } }, _trim= String.prototype.trim ? function (s) { return s.trim() } : function (s) { return s.replace(/(^\s*|\s*$)/g, '') }; function liHover(el){ var li=_$$('li',list),len=li.length; for(var i=0; i<len; i++) { li[i]===el && (index=i); setStyle(li[i],{ 'background':'#f9fdff', 'color':'#000' }) } setStyle(el,{ 'background':'#3167c0', 'color':'#fff' }) txt.value=el.innerHTML; } list.οnmοuseοver=function (e){ var e = e || window.event, target=e.target || e.srcElement; if (target.tagName.toLowerCase()==='li') { liHover(target); } } BaiduSuggestion.callbacks.give1336633927770=function (){ reset(); var arg=arguments[0],ret=[]; arg && (msg=arg.s); if (typeof msg==='undefined') {return;} for(var i=0,len=msg.length; i<len; i++) { ret.push('<li>'+msg[i]+'</li>'); } ret=ret.join(''); if (ret) { list.innerHTML=ret; setStyle(list, 'display', 'block'); } } function getQuery(url){ var val=_trim(txt.value); url+='?wd='+encodeURIComponent(val)+'&p=3&cb=BaiduSuggestion.callbacks.give1336633927770&t='+(+new Date); //GET /su?wd=111111&p=3&cb=BaiduSuggestion.callbacks.give1336633927770&t=1336634709788 HTTP/1.1 loadJs(url,BaiduSuggestion.callbacks.give1336633927770,{'charset':'GBK'}); } function reset(){ setStyle(list, 'display','none'); list.innerHTML=''; index=-1; } txt.οnblur=reset; txt.οnkeyup=function(e){ var li=_$$('li',list),len=li.length,val=txt.value,ret=[],e = e ||window.event,target=e.target || e.srcElement,key=e.which||e.keyCode; if (_trim(val)==='') { return; } switch(key){ case 38: //up if (list.style.display!='none') { if (--index<0 ) { index=len-1}; if (li[index]) { liHover(li[index]); txt.value=li[index].innerHTML; } } break; case 40: //down if (list.style.display!='none') { if (++index>len-1 ) { index=0}; if (li[index]) { liHover(li[index]); txt.value=li[index].innerHTML; } } break; case 13: //enter case 27: if (list.style.display!='none') { if (li[index]) { txt.value=li[index].innerHTML; } reset(); } break; default: getQuery(url); } } } //调用Baidu Suggestion query('http://unionsug.baidu.com/su',_$('searchlists'),_$('search')); </script> </body> </html>

运行代码

转载于:https://www.cnblogs.com/zhuzf/archive/2012/05/11/2495592.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值