软件首页 |  文章首页
最新更新 软件分类 设为首页 加入收藏 联系我们
当前位置:首页文章首页 IT学院 Javascript

高仿 google suggest ajax 示例

作者:  来源:  发布时间:2011-3-15 16:55:30  点击:

  前段时间想用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+"

  • 约"+c[1]+"结果"+c[0]+"
  • ";//****li的显示

     

      后台输出结果格式必需为'文本1,文本2'..... 'java,2''javascript,11''java示例,22'等

      default.css

      .ajaxsearch {

       width:300px; //提示层的宽度

      }

      首页index.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;

      }

      ////////////////////////设置被选

  • css样式////////////////////////

     

      function setlistyle(){

       for(var i=0;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;

  • 首页 上一页 [1] [2] [3]  下一页 尾页

    文章评论

    本类推荐文章

    关于本站 | 网站帮助 | 广告合作 | 下载声明 | 友情连接 | 网站地图
    Copyright © 20098-2010 uzzf下载站. All Rights Reserved .