`
sundful
  • 浏览: 1250291 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单的ajax实现google suggest

    博客分类:
  • Ajax
阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script language="javascript">
var intIndex=0;arrList = new Array();
arrList[intIndex++] = "1sdfsdf.com";
arrList[intIndex++] = "a11sdafs.net";
arrList[intIndex++] = "b22dsafsdf";
arrList[intIndex++] = "c333asdfsadf";
arrList[intIndex++] = "4444dsafasdf";
arrList[intIndex++] = "我sfddsafdsaf";
arrList[intIndex++] = "121213dsafsdaf";
arrList[intIndex++] = "大43213asdfadsf";
arrList[intIndex++] = "大dsa3121dasf3";
arrList[intIndex++] = "大a213";
arrList[intIndex++] = "323313";
arrList[intIndex++] = "3213";
arrList[intIndex++] = "32213";
arrList[intIndex++] = "dsfsdddd";
arrList[intIndex++] = "ds11dfsfd";
arrList[intIndex++] = "ffdafd";
arrList[intIndex++] = "afdfd";
arrList[intIndex++] = "afd";
arrList[intIndex++] = "baffad";
arrList[intIndex++] = "2fda2fd";
arrList[intIndex++] = "dasd";

function smanPromptList(arrList,objInputId){
     this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
     if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;}
     window.onload =function() {
                                  arrList.sort(function(a,b){
                                           if(a.length>b.length)return 1;
                                          else if(a.length==b.length)return a.localeCompare(b);
                                          else return -1;
                                 })
         var objouter=document.getElementById("__smanDisp") //显示的DIV对象
         var objInput = document.getElementById(objInputId); //文本框对象
         var selectedIndex=-1;
         var intTmp; //循环用的:)
         if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
             //文本框失去焦点
             objInput.onblur=function(){
                 objouter.style.display='none';
             }
             //文本框按键抬起
             objInput.onkeyup=checkKeyCode;
             //文本框得到焦点
             objInput.onfocus=checkAndShow;
             function checkKeyCode(){
                 var ie = (document.all)? true:false
                 if (ie){
                     var keyCode=event.keyCode
                     if (keyCode==40||keyCode==38){ //下上
                         var isUp=false
                         if(keyCode==40) isUp=true ;
                         chageSelection(isUp)
                     }else if (keyCode==13){//回车
                         outSelection(selectedIndex);
                     }else{
                         checkAndShow()
                     }
                 }else{
                     checkAndShow()
                 }
                 divPosition()
             }

             function checkAndShow(){
                         var strInput = objInput.value
                         if (strInput!=""){
                             divPosition();
                             selectedIndex=-1;
                             objouter.innerHTML ="";
                             for (intTmp=0;intTmp<arrList.length;intTmp++){
                                 if (arrList[intTmp].substr(0, strInput.length).toUpperCase()==strInput.toUpperCase()){
                                     addOption(arrList[intTmp]);
                                 }
                             }
                             objouter.style.display='';
                         }else{
                             objouter.style.display='none';
                     }
                     function addOption(value){
                         objouter.innerHTML +="<div onmouseover=\"this.className='sman_selectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "'\">" + value + "</div>"   
                     }
             }
             function chageSelection(isUp){
                 if (objouter.style.display=='none'){
                     objouter.style.display='';
                 }else{
                     if (isUp)
                         selectedIndex++
                     else
                         selectedIndex--
                 }
                 var maxIndex = objouter.children.length-1;
                 if (selectedIndex<0){selectedIndex=0}
                 if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
                 for (intTmp=0;intTmp<=maxIndex;intTmp++){

                     if (intTmp==selectedIndex){
                         objouter.children[intTmp].className="sman_selectedStyle";
                     }else{
                         objouter.children[intTmp].className="";
                     }
                 }
             }
             function outSelection(Index){
                 objInput.value = objouter.children[Index].innerText;
                 objouter.style.display='none';
             }
             function divPosition(){
                 objouter.style.top     =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
                 objouter.style.left     =getAbsoluteLeft(objInput);
                 objouter.style.width=getAbsoluteWidth(objInput)
             }
     }
     document.write("<div id='__smanDisp' style='position:absolute;display:none;" + this.style + "' onbulr> </div>");
     document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
     function getAbsoluteHeight(ob){
         return ob.offsetHeight
     }
     function getAbsoluteWidth(ob){
         return ob.offsetWidth
     }
     function getAbsoluteLeft(ob){
         var mendingLeft = ob .offsetLeft;
         while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
             mendingLeft += ob .offsetParent.offsetLeft;
             mendingOb = ob.offsetParent;
         }
         return mendingLeft ;
     }
     function getAbsoluteTop(ob){
         var mendingTop = ob.offsetTop;
         while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
             mendingTop += ob .offsetParent.offsetTop;
             ob = ob .offsetParent;
         }
         return mendingTop ;
     }
}
smanPromptList(arrList,"inputer")
</script>


</HEAD>

<BODY>
  <form action="" method="post">
<input type="text" id="inputer">
  </form>
</BODY>
</HTML>
分享到:
评论

相关推荐

    ajax仿google suggest 数据库版

    **Ajax仿Google Suggest数据库版**是基于Ajax技术实现的一种搜索建议功能,它模拟了Google搜索引擎在用户输入关键字时实时显示搜索建议的效果。这个项目主要使用Java作为后端语言,结合Ajax技术,为前端用户提供流畅...

    AJAX实现仿Google Suggest搜索提示效果

    在本文中,我们将深入探讨如何使用AJAX技术来实现一个仿Google Suggest的搜索提示功能。Google Suggest是Google搜索引擎中的一个特色功能,它在用户输入关键词时提供实时的搜索建议,极大地提高了搜索效率和用户体验...

    jsp+ajax实现googleSuggest(全)

    综上所述,"jsp+ajax实现googleSuggest(全)"项目涵盖了JSP、AJAX以及前端交互设计等多个技术点,通过它们的结合,可以实现类似Google搜索框的智能提示功能,提升用户体验。在实际开发中,还需要考虑性能优化、错误...

    google suggest 实现 ajax应用

    【标题】:Google Suggest 实现 AJAX 应用 在当今的Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于创建交互性更强、用户体验更佳的网页应用。本主题主要聚焦于如何使用ASP.NET框架实现一个...

    基于Ajax的Google Suggest 开发

    Google Suggest正是利用了Ajax的核心特性,实现了在用户输入搜索关键词时,实时向服务器发送请求,获取相关建议,并在页面上动态展示。 在Google Suggest中,用户在搜索框中输入字符时,触发`onkeyup`事件,这是一...

    ajax-类似google suggest 的一个简单例子

    5. **异步通信**:了解异步编程的概念,以及如何通过Ajax实现非阻塞的请求/响应模式,对于优化网页性能至关重要。 6. **数据格式**:在前后端之间交换数据时,可能涉及JSON或XML等格式。了解这些格式的结构和转换...

    google suggest 的实现

    Google Suggest 的前端主要采用了 Ajax 技术来实现动态加载搜索建议。Ajax(Asynchronous JavaScript and XML,异步 JavaScript 和 XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过这种...

    java与jQuery整合ajax仿googleSuggest自动补全实例

    本实例将探讨如何将这两者整合,通过AJAX技术实现一个仿Google Suggest的自动补全功能,该功能通常用于输入框中,为用户提供动态搜索建议。我们将详细解析这个实例中的各个组成部分。 首先,`index.jsp`是用户界面...

    ajax实现google搜索提示

    以上就是使用Ajax实现Google搜索提示的基本流程。需要注意的是,实际应用中可能需要考虑更多因素,如错误处理、性能优化、用户体验优化等。同时,对于实际的API接口,你可能需要根据具体的服务端实现进行调整。在...

    GoogleSuggest ajax自动补全

    【标题】"GoogleSuggest ajax自动补全"是基于AJAX和jQuery技术实现的一个功能,它主要用于提升用户体验,提供在用户输入时实时显示搜索建议的功能。这个功能在很多搜索引擎和网站中都有应用,比如Google搜索,它能...

    AJAX实现仿Google Suggest效果

    本文将介绍如何使用AJAX技术来实现类似Google Suggest的功能,这是一种实时的、基于用户输入的搜索建议机制。Google Suggest通过在用户输入关键词时动态提供搜索建议,提高了用户体验,减少了不必要的键盘输入。以下...

    script.aculo.us实现googleSuggest用例

    **实现Google Suggest用例** 在`script.aculo.us`中实现`Google Suggest`功能,你需要以下几个关键步骤: 1. **引入库**:首先,在网页中引入`script.aculo.us`库和必要的CSS样式表。这通常通过在HTML头部添加链接...

    仿google baidu的suggest实现

    使用ajax技术实现的google suggest,功能和google一样。参照google制作。下载后解压文件,将SuggestServlet 放在src的com.huage.ajax.servlet包下,将suggest.jsp放在WebRoot的根目录下,运行suggest.jsp即可。本...

    AJAX学习总结(九)---Jquery实例:仿googlesuggest自动补全功能

    在本文中,我们将深入探讨AJAX技术在JavaScript库jQuery中的应用,特别是通过一个实战案例——仿谷歌搜索建议(Google Suggest)的自动补全功能。这个功能广泛应用于各种搜索框,能够极大地提升用户体验,使用户在...

    Ajax实战:Google Suggest风格搜索

    要实现Google Suggest风格的搜索,首先我们需要在用户输入时监听键盘事件,当用户输入达到一定长度或按下特定键(如回车或下拉键)时,触发Ajax请求。使用JavaScript的XMLHttpRequest对象或者现代浏览器支持的fetch ...

    JQuery Ajax 仿google suggest 自动补全功能 支持中文(jsp / Servlet)

    本示例将深入解析如何使用jQuery Ajax实现一个仿Google Suggest的自动补全功能,特别针对中文输入进行了优化,并且结合了Java后端技术如jsp和Servlet。 首先,让我们理解这个功能的核心概念。Google Suggest的自动...

    Ajax无刷新和GoogleSuggest

    **实现Google Suggest** 1. **JavaScript基础**:在客户端,主要使用JavaScript来监听用户的输入事件,当用户在搜索框中输入时,触发一个函数,这个函数将当前的输入值发送到服务器。 2. **XMLHttpRequest对象**:...

    仿GoogleSuggest自动补全的功能

    本教程将详细讲解如何实现一个仿GoogleSuggest的自动补全功能,旨在提供一个绝对实用的解决方案。 首先,理解GoogleSuggest的工作原理至关重要。它基于用户在搜索框中输入的字符,实时从服务器端获取并展示可能的...

Global site tag (gtag.js) - Google Analytics