99久久免费国产精品-天天爽夜夜爽夜夜爽-色噜噜久久综合伊人一本-国产无遮挡又黄又爽免费视频

在線客服:  

「南寧煙寒網絡」提供南寧網站建設、網站策劃、南寧網頁制作、網站設計、網站改版、南寧SEO優化、網站維護、南寧網站優化、南寧網站推廣、廣告設計等服務..

咨詢熱線

在線客服

24小時免費咨詢電話:18978941786

客服時間:上午9:30~下午6點

當前位置:首頁>> 技術文章 >> ASP學習 >> 高仿google suggest ajax示例

高仿google suggest ajax示例

收藏 分享 發布日期:2012-2-12 16:30:50    編輯:admin  文章來源:  點擊率:

前段時間想用google suggest在網上找了很多都不盡人意,于是自己花了些時間寫了一個,跟google suggest 基本一樣,后面的約多少結果非本程序范圍哦

需要修改的地方有

javascript.js

var url="ajax.asp"; //后臺地址
var time_delayajax=300; //搜索延遲
var time_delayupdown=100; //方向鍵延遲
obj_div.style.top = (xtop + 20) + "px"; //20差不多是輸入框的高度,請根據實際情況調整
ajax_xmlhttp.send("sift_value="+escape(temp_value)); //提交到后臺的值

dd=d+"<li onmouseover=\"overli("+i+");\" onmousedown=\"downli("+i+")\" onmouseup=\"upli("+i+",event)\" onmousemove=\"moveli();\"><span>約"+c[1]+"結果</span>"+c[0]+"</li>";//****li的顯示

后臺輸出結果格式必需為'文本1,文本2'..... 'java,2''javascript,11''java示例,22'等

default.css

.ajaxsearch { 
  width:300px; //提示層的寬度
}

首頁index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="default.css" />
<script language="JavaScript" src="javascript.js" type="text/javascript"></script>
<title>Google suggest高仿示例</title>
</head>

<body onResize="removediv();">
<div style="margin:20px 50px">
<input style="width:298px;height:18px" type="text" autocomplete="off" onBlur="blurdeal();" onKeyDown="keydowndeal(event);" onFocus="focusdeal(event);" />
</div>
</body>
</html>

腳本javascript.js

///////////////////////////////搜索提示框///////////////////////////////// 
var obj_div;     //提示層對象 
var obj_input;     //輸入框對象 
var main_delay;     //判斷值變化延遲對象 
var ajax_delay;     //ajax延遲搜索對象 
var updown_delay;    //方向鍵延遲對象 
var ajax_xmlhttp;    //ajax對象 
var div_word=null;    //當前提示層對應的搜索值 
var li_num=-1;     //偽光標位置,提示層被選中的li序號,從0開始 
var li_down=-1;     //鼠標按下提示層的序號 
var value_ed='';    //輸入框延遲前的值 
var value_ing='';    //輸入框當前的值 
var value_unexit='';   //搜索過沒有結果的值開頭 
var updown_run=false;   //允許方向鍵上下 
var ajax_run=false;    //true為正常進程,false停止ajax 
var ajax_run_ing=false;   //true正在運行,false空閑 
var input_focus=false;   //文本框焦點 
var url='ajax.asp';    //后臺地址********************************************************** 
var time_delayajax=300;   //搜索延遲********************************************************** 
var time_delayupdown=100;  //方向鍵延遲******************************************************** 
 
var $=function(Fun_id){ 
 return document.getElementById(Fun_id); 

try{ 
 ajax_xmlhttp= new ActiveXObject('Msxml2.XMLHTTP'); 
}catch(e){ 
 try{ 
  ajax_xmlhttp= new ActiveXObject('Microsoft.XMLHTTP'); 
 }catch(e){ 
  try{ 
   ajax_xmlhttp= new XMLHttpRequest(); 
  }catch(e){ajax_xmlhttp=null;} 
 } 

////////////////////////創建提示層//////////////////////// 
function createajaxdiv(){ 
 var create_div = document.createElement('div'); 
 create_div.type = 'div'; 
 var promptdiv = document.body.appendChild(create_div); 
 promptdiv.className = 'ajaxsearch'; 
 obj_div=promptdiv; 

////////////////////////設置提示層位置//////////////////////// 
function removediv(){ 
 if(!obj_div || !obj_input)return false; 
 if(obj_div.style.display=='none')return false; 
 var obj=obj_input; 
 var xtop=0; 
 var xleft=0; 
 while(obj){ 
  xtop += obj['offsetTop']; 
  xleft += obj['offsetLeft']; 
  obj = obj.offsetParent; 
 } 
 obj_div.style.left = xleft + 'px'; 
 obj_div.style.top = (xtop + 20) + 'px';    //20差不多是輸入框的高度,請根據實際情況調整************************************************************8 
 li_down=-1; 

////////////////////////隱藏提示層//////////////////////// 
function hideajaxdiv(){ 
 obj_div.style.display='none'; 
 li_down=-1; 

////////////////////////設置被選<li>css樣式//////////////////////// 
function setlistyle(){ 
 for(var i=0;i<obj_div.firstChild.childNodes.length;i++){ 
  obj_div.firstChild.childNodes[i].id=''; 
 } 
 if(li_num!=-1)obj_div.firstChild.childNodes[li_num].id='liseleted'; 

////////////////////////鼠標經過提示層//////////////////////// 
function overli(Fun_seletedlinum){ 
 if(li_num==-1)value_ing=obj_input.value; 
 li_num=Fun_seletedlinum; 
 setlistyle(); 

////////////////////////鼠標拖動提示層//////////////////////// 
function moveli(){ 
 if(window.getSelection){ 
  setfocus(); 
  window.getSelection().removeAllRanges(); 
 }else{ 
  document.selection.empty(); 
  setfocus(); 
 } 

////////////////////////鼠標按下提示層//////////////////////// 
function downli(Fun_seletedlinum){ 
 if(!obj_input)return false; 
 li_down=Fun_seletedlinum; 
 input_focus=true; 

////////////////////////鼠標彈起提示層//////////////////////// 
function upli(Fun_seletedlinum,Fun_event){ 
 if(!obj_input)return false; 
 if(Fun_event.button==2){li_down=-1;return} 
 if(li_down!=Fun_seletedlinum){ 
  li_down=-1; 
  return false; 
 } 
 clearTimeout(ajax_delay); 
 clearTimeout(updown_delay); 
 updown_run=true; 
 ajax_run=false; 
 ajax_run_ing=false; 
 li_num=-1; 
 div_word=null; 
 
 value_ed=obj_div.firstChild.childNodes[Fun_seletedlinum].childNodes[1].nodeValue; 
 obj_input.value=value_ed; 
 value_ing=value_ed; 
 hideajaxdiv(); 
 obj_div.innerHTML=''; 

////////////////////////設置文本框獲取焦點/////////////////////// 
function setfocus(){ 
 if(window.event){ 
  var r = obj_input.createTextRange(); 
  r.moveStart('character',obj_input.value.length); 
  r.collapse(true); 
  r.select(); 
 }else{ 
  obj_input.selectionStart=obj_input.value.length; 
  obj_input.focus(); 
 } 

////////////////////////文本框失去焦點//////////////////////// 
function blurdeal(){ 
 if(input_focus==true){ 
  setfocus(); 
  setTimeout('setfocus()'); 
  return false; 
 } 
 updown_run=false; 
 ajax_run=false; 
 ajax_run_ing=false; 
 clearInterval(main_delay); 
 clearTimeout(ajax_delay); 
 clearTimeout(updown_delay); 
 hideajaxdiv(); 
 if(value_ed!=obj_input.value)obj_div.innerHTML=''; 

////////////////////////文本框獲取焦點//////////////////////// 
function focusdeal(Fun_event){ 
 if(!obj_div)createajaxdiv(); 
 if(input_focus==true){ 
  input_focus=false; 
  return false; 
 } 
 var obj=((window.event)?Fun_event.srcElement:Fun_event.target); 
 if(obj.type!='text')return false; 
 updown_run=true; 
 ajax_run=true; 
 ajax_run_ing=false; 
 if(obj_input==obj &amp;&amp; value_ed==obj.value &amp;&amp; obj_div.innerHTML!=''){ 
  obj_div.style.display='block'; 
  removediv(); 
 }else{ 
  obj_input=obj; 
  value_ed=obj.value; 
  value_ing=obj.value; 
  value_unexit=''; 
  li_num=-1; 
  li_down=-1; 
  div_word=null; 
  obj_div.innerHTML=''; 
  removediv(); 
 } 
 main_delay=setInterval('mainajax()',10); 

////////////////////////主函數//////////////////////// 
function mainajax(){ 
 if(value_ed==obj_input.value)return false; 
 if(value_unexit!='' &amp;&amp; (obj_input.value).indexOf(value_unexit)==0){hideajaxdiv();obj_div.innerHTML='';return false;} 
 if(value_ed!=obj_input.value &amp;&amp; ajax_run_ing==false){ 
  ajax_run=true; 
  value_ed=obj_input.value; 
  clearTimeout(ajax_delay); 
  if(obj_input.value!=''){ 
   ajax_delay=setTimeout('getsearch();',time_delayajax); 
  }else{ 
   hideajaxdiv(); 
   obj_div.innerHTML=''; 
   ajax_run=false; 
return false; 
    
  }   
 } 

////////////////////////獲取搜索內容//////////////////////// 
function getsearch(){ 
 var temp_value=obj_input.value; 
 if(ajax_xmlhttp==null){ 
  return false; 
 }else if(ajax_xmlhttp.readyState!=0){ 
  ajax_xmlhttp.abort(); 
  ajax_run_ing=false; 
 } 
 ajax_xmlhttp.onreadystatechange=function(){ 
  if(ajax_run==false){ajax_xmlhttp.abort();ajax_run_ing=false;return false;} 
  if(ajax_xmlhttp.readyState==4){ 
   obj_div.innerHTML=''; 
if(ajax_xmlhttp.status==200 || ajax_xmlhttp.status==304){ 
    var contant=ajax_xmlhttp.responseText; 
    if(contant!='' &amp;&amp; ajax_run==true){ 
     div_word=temp_value; 
     obj_div.innerHTML=resetcontant(contant); 
     obj_div.style.display='block'; 
     removediv();removediv(); 
    }else{ 
     hideajaxdiv(); 
    } 
    updown_run=true; 
    ajax_run_ing=false; 
    li_num=-1; 
    if(contant=='')value_unexit=temp_value; 
   } 
  } 
 } 
 ajax_xmlhttp.open('post',url,true); 
 ajax_xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); 
 ajax_run_ing=true; 
 ajax_xmlhttp.send('sift_value='+escape(temp_value)); //提交到后臺的值***************************************** 

////////////////////////內容重組/////////////////////// 
function resetcontant(Fun_contant){ 
 if(Fun_contant==null || Fun_contant=='')return ''; 
 var a=Fun_contant.substring(1,Fun_contant.length-1); 
 if(Fun_contant==null || Fun_contant=='')return ''; 
 var b=a.split(''''); 
 var c; 
 var d; 
 d='<ul>'; 
 for(var i in b){ 
  c=b[i].split(','); 
  //*************************************************************** 
  d=d+'<li onmouseover=\'overli('+i+');\' onmousedown=\'downli('+i+')\' onmouseup=\'upli('+i+',event)\' onmousemove=\'moveli();\'><span>約'+c[1]+'結果</span>'+c[0]+'</li>'; 
  //*************************************************************** 
 } 
 d=d+'<li onmousedown=\'input_focus=true;li_down=-1;\' onmouseup=\'li_down=-1\' onmousemove=\'moveli();\'><span><a class=\'shutajaxdiv\' onclick=\'hideajaxdiv();\'>關閉</a></span></li>'
 d=d+'</ul>'; 
 return d; 

////////////////////////鍵盤事件//////////////////////// 
function keydowndeal(Fun_event){ 
 var keyc=((window.event)?Fun_event.keyCode:Fun_event.which); 
 if(keyc==13){hideajaxdiv();return false;} 
 if(keyc==27){ 
  if(obj_div.style.display=='block' &amp;&amp; li_num>-1)value_ed=obj_input.value=value_ing; 
  hideajaxdiv(); 
  return false; 
 }  
 if(keyc==40 || keyc==38){ 
  if(div_word==obj_input.value &amp;&amp; obj_div.style.display=='none' &amp;&amp; obj_div.innerHTML!=''){ 
   obj_div.style.display='block'; 
   removediv(); 
return false; 
  } 
  if(li_num==-1){ 
if(div_word!=obj_input.value)return false; 
  }else{ 
if(div_word!=value_ing)return false; 
  } 
  if(updown_run==false || ajax_run_ing==true || obj_div.style.display=='none')return false; 
  updown_delay=setTimeout('updownli('+keyc+')',time_delayupdown); 
  updown_run=false; 
 } 

////////////////////////方向鍵移動li//////////////////////// 
function updownli(Fun_key){ 
 if(!obj_div){return false;} 
 updown_run=true; 
 if(li_num==-1){ 
  if(div_word!=obj_input.value){hideajaxdiv();obj_div.innerHTML='';li_num=-1;return false;} 
 }else{ 
  if(div_word!=value_ing){hideajaxdiv();obj_div.innerHTML='';li_num=-1;return false;} 
 } 
 if(updown_run==false)return false; 
 if(li_num==-1)value_ing=value_ed; 
 if(Fun_key==40){ 
  if(li_num<obj_div.firstChild.childNodes.length-2){ 
   li_num++; 
  }else{ 
   li_num=-1; 
  } 
 } 
 if(Fun_key==38){ 
  if(li_num>=0){ 
   li_num--; 
  }else{ 
   li_num=obj_div.firstChild.childNodes.length-2; 
  } 
 } 
 if(li_num!=-1){ 
  value_ed=obj_input.value=obj_div.firstChild.childNodes[li_num].childNodes[1].nodeValue; 
 }else{ 
  value_ed=obj_input.value=value_ing; 
 } 
 setlistyle(); 
}

后臺ajax.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001" %>
<%option explicit%>
<%Response.CodePage="65001"%>
<%Response.Charset="utf-8" %>
<!--#include file="conn.asp"-->
<%
dim Sift_value
dim Sql,Rs,I,Num
dim Contant
Contant=""
Num=10
Sift_value=replace(unescape(request.form("sift_value")),"""","""""")

Sql="select top "&Num&" keyword,matchnum from search where keyword like """&Sift_value&"%"" order by id"

set Rs=server.CreateObject("adodb.recordset")
Rs.open Sql,Conn,1,1
if not (Rs.eof and Rs.bof) then
for I=0 to Num-1
Contant=Contant&"'"&rs(0)&","&rs(1)&"'"
Rs.movenext
if Rs.eof then exit for
next
end if
response.Write(Contant)
Rs.close
set Rs=nothing
%>
本文章由南寧網站建設南寧網站優化南寧網絡公司整理,轉載請注明出處:http://m.lidajijin.com/

關于我們 | 域名主機 | 建站套餐 | 企業動態 | 成功案例 | 網站推廣 | 建站知識 | 常見問題 | 聯系我們

南寧煙寒網絡竭誠為您免費提供南寧網站建設南寧網站設計南寧網站優化、維護以及網站技術很方面的網絡服務!

南寧網站建設南寧網絡公司咨詢熱線電話:0771-5306126 18967841786(24小時全天電話)

煙寒網絡 - 讓你進一步走向成功

主站蜘蛛池模板: 精品人无码一区二区三区| 欧美老熟妇乱人伦人妻| 国产精品国产三级国产av中文| 精品亚洲欧美无人区乱码| 亚洲成色www久久网站夜月| 99久久无码私人网站| 久久精品国产亚洲夜色av网站| 国产精品熟女视频一区二区| 东京热一区二区三区无码视频| 色天使亚洲综合一区二区| 精品久久久久久久无码| 最新亚洲人成网站在线观看| 中国少妇内射xxxhd免费| 亚洲国产精品成人无码区| 亚洲一区二区三区影院| 亚洲经典千人经典日产| 无码性午夜视频在线观看| 国产精品毛片无遮挡高清| 中文字幕精品无码一区二区 | 国产精品久久久久无码av色戒| 国产精品99久久精品| 乱子轮熟睡1区| 成人欧美一区二区三区| 纯爱无遮挡h肉动漫在线播放| 大肉大捧一进一出好爽视频mba| 久久久久亚洲av成人无码电影| 久久人人爽爽爽人久久久| 日本真人边吃奶边做爽动态图| 精品无码久久久久国产手机版| 亚洲精品自在在线观看| 无人在线观看高清电影电视剧| 国产自国产自愉自愉免费24区| 51看片免费视频| 在线亚洲人成电影网站色www| 6080yyy午夜理论片中无码| 亚洲国产日韩在线人成蜜芽| 人人澡人人澡人人看添av| 国产精品乱子乱xxxx| 国产md视频一区二区三区| 露脸内射熟女--69xx| 欧美老妇与zozoz0交|