仿google、百度搜索框输入信息智能提示的实现 兼容主流浏览器

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4.     <title>仿google、百度搜索框输入信息智能提示的实现 兼容主流浏览器</title>  
  5.     <style type="text/css" media="screen">  
  6.         body  
  7.         {  
  8.             font: 11px arial;  
  9.         }  
  10.         .suggest_link  
  11.         {  
  12.             width:120px;  
  13.             background-color: #FFFFFF;  
  14.             padding: 2px 6px 2px 6px;  
  15.         }  
  16.         .suggest_link_over  
  17.         {  
  18.             width:120px;  
  19.             background-color: #E8F2FE;  
  20.             padding: 2px 6px 2px 6px;  
  21.         }  
  22.         #suggestResult  
  23.         {  
  24.             position: absolute;  
  25.             background-color: #FFFFFF;  
  26.             text-align: left;  
  27.             border: 1px solid #000000;  
  28.         }  
  29.         /*input*/  
  30.         .input_on  
  31.         {  
  32.             padding: 2px 8px 0pt 3px;  
  33.             height: 18px;  
  34.             border: 1px solid #999;  
  35.             background-color: #FFFFCC;  
  36.         }  
  37.         .input_off  
  38.         {  
  39.             padding: 2px 8px 0pt 3px;  
  40.             height: 18px;  
  41.             border: 1px solid #CCC;  
  42.             background-color: #FFF;  
  43.         }  
  44.         .input_move  
  45.         {  
  46.             padding: 2px 8px 0pt 3px;  
  47.             height: 18px;  
  48.             border: 1px solid #999;  
  49.             background-color: #FFFFCC;  
  50.         }  
  51.         .input_out  
  52.         {  
  53.             /*height:16px;默认高度*/  
  54.             padding: 2px 8px 0pt 3px;  
  55.             height: 18px;  
  56.             border: 1px solid #CCC;  
  57.             background-color: #FFF;  
  58.         }  
  59.     </style>  
  60.     <script language="javascript" type="text/javascript">  
  61.         var $ = document.getElementById;  
  62.         //创建XMLHttpRequest对象        
  63.         function createXMLHttpRequest() {  
  64.             var obj;  
  65.             if (window.XMLHttpRequest) { //Mozilla 浏览器   
  66.                 obj = new XMLHttpRequest();  
  67.             }  
  68.             else if (window.ActiveXObject) { // IE浏览器   
  69.                 try {  
  70.                     obj = new ActiveXObject("Msxml2.XMLHTTP");  
  71.                 } catch (e) {  
  72.                     try {  
  73.                         obj = new ActiveXObject("Microsoft.XMLHTTP");  
  74.                     } catch (e) { }  
  75.                 }  
  76.             }  
  77.             return obj;  
  78.         }  
  79.         //当输入框的内容变化时,调用该函数  
  80.         function searchSuggest() {  
  81.             var inputField = $("txtSearch");  
  82.             var suggestText = $("suggestResult");  
  83.             if (inputField.value.length > 0) {  
  84.                 var o = createXMLHttpRequest();  
  85.                 var url = "SearchResult.ashx?searchText=" + escape(inputField.value);  
  86.                 o.open("GET", url, true);  
  87.                 o.onreadystatechange = function () {  
  88.                     if (o.readyState == 4) {  
  89.                         if (o.status == 200) {  
  90.                             var sourceItems = o.responseText.split("\n");  
  91.                             if (sourceItems.length > 1) {  
  92.                                 suggestText.style.display = "";  
  93.                                 suggestText.innerHTML = "";  
  94.                                 for (var i = 0; i < sourceItems.length - 1; i++) {  
  95.                                     var sourceText = sourceItems[i].split("@")[1];  
  96.                                     var sourceValue = sourceItems[i].split("@")[0];  
  97.                                     var s = "<div οnmοuseοver=\"javascript:suggestOver(this);\" ";  
  98.                                     s += " onmouseout=\"javascript:suggestOut(this);\" ";  
  99.                                     s += " onclick=\"javascript:setSearch('" + sourceText + "','" + sourceValue + "');\" ";  
  100.                                     s += " class=\"suggest_link\" >" + sourceText + "</div>";  
  101.                                     suggestText.innerHTML += s;  
  102.                                 }  
  103.                             }  
  104.                             else {  
  105.                                 suggestText.style.display = "none";  
  106.                             }  
  107.                         }  
  108.                     }  
  109.                 };  //指定响应函数   
  110.                 o.send(null); // 发送请求   
  111.             }  
  112.             else {  
  113.                 suggestText.style.display = "none";  
  114.             }  
  115.         }  
  116.   
  117.         function delayExecute() {  
  118.             $("valueResult").value = "";  
  119.             window.setTimeout(function () { searchSuggest() }, 800);   //延时处理  
  120.         }  
  121.   
  122.         function suggestOver(div_value) {  
  123.             div_value.className = "suggest_link_over";  
  124.         }  
  125.         function suggestOut(div_value) {  
  126.             div_value.className = "suggest_link";  
  127.         }  
  128.         function setSearch(a, b) {  
  129.             $("txtSearch").value = a;  
  130.             $("valueResult").value = b;  
  131.             var div = $("suggestResult");  
  132.             div.innerHTML = "";  
  133.             div.style.display = "none";  
  134.         }  
  135.         function showResult() {  
  136.             alert($("txtSearch").value + $("valueResult").value);  
  137.         }  
  138.   
  139.   
  140.     </script>  
  141. </head>  
  142. <body>  
  143.     <form id="form1" action="">  
  144.     <input type="text" id="txtSearch" name="txtSearch" onkeyup="delayExecute();" size="20"  
  145.         class="input_out" onfocus="this.className='input_on';this.οnmοuseοut=''"   
  146.         onblur="this.className='input_off';this.οnmοuseοut=function(){this.className='input_out'};"  
  147.         onmousemove="this.className='input_move'" onmouseout="this.className='input_out'" />  
  148.     <input type="hidden" id="valueResult" name="valueResult" value="" />  
  149.     <br />  
  150.     <div id="suggestResult" style="display: none">  
  151.     </div>  
  152.     <br/>  
  153.     <input id="button1" type="button" value="提交" onclick="showResult();" />  
  154.     </form>  
  155. </body>  
  156. </html>  

[csharp]  view plain  copy
 print ?
  1. <%@ WebHandler Language="C#" Class="SearchResult" %>  
  2.   
  3. using System;  
  4. using System.Web;  
  5. using System.Data;  
  6.   
  7. public class SearchResult : IHttpHandler {  
  8.       
  9.     public void ProcessRequest (HttpContext context) {  
  10.         object QueryWord=context.Request.QueryString["searchText"];  
  11.         if (QueryWord != null)  
  12.         {  
  13.             if (QueryWord.ToString().Trim().Length > 0)  
  14.             {  
  15.                 DataTable dt = getDB();  
  16.                 string returnText = "";  
  17.                 if (dt != null && dt.Rows.Count > 0)  
  18.                 {  
  19.                     DataRow[] dr = dt.Select(" name like '%" + QueryWord .ToString()+ "%' ");  
  20.                     if (dr.Length > 0)   
  21.                     {  
  22.                         for (int i = 0; i < dr.Length; i++)  
  23.                         {  
  24.                             //可设置返回多字符串  
  25.                             returnText += dr[i]["id"].ToString() + "@" + dr[i]["name"].ToString() + "\n";   
  26.                         }  
  27.                     }  
  28.                 }  
  29.                 context.Response.Write(returnText);  
  30.                 context.Response.End();  
  31.             }  
  32.         }          
  33.     }  
  34.    
  35.     public bool IsReusable {  
  36.         get {  
  37.             return false;  
  38.         }  
  39.     }  
  40.   
  41.   
  42.     /// <summary>  
  43.     /// 获取数据源的方法  
  44.     /// </summary>  
  45.     /// <returns>数据源</returns>  
  46.     private DataTable getDB()  
  47.     {  
  48.         DataTable dt = new DataTable();  
  49.         dt.Columns.Add("id");  
  50.         dt.Columns.Add("name");  
  51.         dt.Columns.Add("age");  
  52.         dt.Rows.Add(new object[] { "000001""张三""26" });  
  53.         dt.Rows.Add(new object[] { "000002""张晓""26" });  
  54.         dt.Rows.Add(new object[] { "000003""张岚""27" });  
  55.         dt.Rows.Add(new object[] { "000004""李四""25" });  
  56.         dt.Rows.Add(new object[] { "000005""李星""27" });  
  57.         return dt;  
  58.     }  
  59.   
  60. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值