亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? auto.js

?? 用Ajax實現自動補全,仿GOOGLE SUGGEST
?? JS
字號:
//使用封裝方法的人只關心提供http的請求方法,url地址,數據,成功和失敗的回調方法//類的構造定義,主要職責就是新建出XMLHttpRequest對象var MyXMLHttpRequest = function() {    var xmlhttprequest;    if (window.XMLHttpRequest) {        xmlhttprequest = new XMLHttpRequest();        if (xmlhttprequest.overrideMimeType) {            xmlhttprequest.overrideMimeType("text/xml");        }    } else if (window.ActiveXObject) {        var activeName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];        for (var i = 0 ; i < activeName.length; i++) {            try{                xmlhttprequest = new ActiveXObject(activeName[i]);                break;            } catch(e) {            }        }    }    if (xmlhttprequest == undefined || xmlhttprequest == null) {        alert("XMLHtttpRequest對象創(chuàng)建失敗!!");    } else {        this.xmlhttp = xmlhttprequest;    }}//用戶發(fā)送請求的方法MyXMLHttpRequest.prototype.send = function(method,url,data,callback,failback) {    if (this.xmlhttp != undefined && this.xmlhttp != null) {        method = method.toUpperCase();        if (method != "GET" && method != "POST") {            alert("HTTP的請求方法必須是GET或POST!!");            return;        }        if (url == null || url == undefined) {            alert("HTTP的請求地址必須設置!");            return;        }        var tempxmlhttp = this.xmlhttp;        this.xmlhttp.onreadystatechange = function() {            if (tempxmlhttp.readyState == 4) {                if (tempxmlhttp.status == 200) {                    var responseText = tempxmlhttp.responseText;                    var reponseXML = tempxmlhttp.responseXML;                    if (callback == undefined || callback == null) {                        alert("沒有設置處理數據正確返回的方法!");                        alert("返回的數據:" + responseText);                    } else {                        callback(responseText,reponseXML);                    }                } else {                    if (failback == undefined || failback == null) {                        alert("沒有設置處理數據返回失敗的處理方法!");                        alert("HTTP的響應碼:" + tempxmlhttp.status + ",響應碼的文本信息:" + tempxmlhttp.statusText);                    } else {                        failback(tempxmlhttp.status,tempxmlhttp.statusText);                    }                }            }        }        //解決緩存的轉換        if (url.indexOf("?") >= 0) {            url = url + "&t=" + (new Date()).valueOf();        } else {            url = url + "?t=" + (new Date()).valueOf();        }        //解決跨域的問題        if (url.indexOf("http://") >= 0) {            url.replace("?","&");            url = "Proxy?url=" + url;        }        this.xmlhttp.open(method,url,true);        //如果是POST方式,需要設置請求頭        if (method == "POST") {            this.xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");        }        this.xmlhttp.send(data);    } else {        alert("XMLHtttpRequest對象創(chuàng)建失敗,無法發(fā)送數據!");    }}MyXMLHttpRequest.prototype.abort = function() {    this.xmlhttp.abort();}/*//加入需要使用我的封裝,可以使用如下代碼var xmlhttp = new MyXMLHttpRequest();xmlhttp.send("GET","AJAXServer?name=123",null,callback,faliback); */var textNode;var popupNode;//保存文本框中本次事件之前的內容var lastTextValue;//記錄當前高亮節(jié)點的索引值var highLightIndex = -1;//延時操作的idvar timeoutId window.onload=init;//頁面初始化執(zhí)行的方法function init() {    //找到頁面中的兩個反復使用的元素節(jié)點    textNode = document.getElementById("autotext");    popupNode = document.getElementById("popup");                //控制彈出框的位置    //先找到文本框的位置    var left = textNode.offsetLeft;    var top = textNode.offsetTop;    var parent = textNode.offsetParent;    while(parent) {        left += parent.offsetLeft;        top += parent.offsetTop;        parent = parent.offsetparent;    }    //控制彈出框的顯示位置和寬度    popupNode.style.left = left + "px";    popupNode.style.top = top + textNode.offsetHeight + "px";    popupNode.style.width = textNode.offsetWidth + "px";    //這里沒有控制彈出框的高度,復雜例子的話,一種方式可以控制服務器端回傳的數據量,另一種方式就是直接控制彈出框的高,并且讓它可以顯示滾動條            }//處理鍵盤按下再彈起時的事件function completeText(event) {    //為了判斷鍵盤當前是那個鍵按下后彈起,我們需要確定當前鍵盤按鍵的內容    //針對不同的瀏覽器,來獲取event對象         var myevent = window.event || event;    var textValue = textNode.value;    //獲取當前彈起的鍵盤按鍵所對應的鍵碼    var keyCode = myevent.keyCode;    if (keyCode >= 48 && keyCode <= 90 || keyCode == 8 || keyCode == 46 || textValue!=""|| textValue!=null ) {        //字母,數字,退格鍵,刪除按下的時候,需要將當前文本框中的內容送到服務器端,獲得可以補全用的單詞        //需要獲取當前文本框中的內容        textValue = textNode.value;             if (textValue == ""){            //不需要和服務器進行交互            //需要清除彈出框的內容            clearPopup();        } else if (textValue != lastTextValue){            //先把上一次的延時操作清除            clearTimeout(timeoutId);            //利用setTimeout,它可以延時執(zhí)行我的一個方法            timeoutId = setTimeout(function(){                var xmlhttp = new MyXMLHttpRequest();                textValue=  encodeURI(encodeURI(textValue));                              xmlhttp.send("POST", "AutoComplete.aspx", "word=" +textValue,callback, failback);            },500);        }        lastTextValue = textValue;        //alert("字母,數字,退格或刪除被按下");       }    if(keyCode==38||keyCode==40){           //按上下鍵選擇被補全出來的內容           moveHighLight(keyCode);    }    if( keyCode == 13 ){           //如果按下回車鍵,彈出框中有內容被選中時,則把彈出框中的內容補全文本框,如果沒有被選中,就給出一個提示信息表式需要提交數據           if (highLightIndex != -1) {              //表式彈出框有內容被選中              var word = popupNode.childNodes[highLightIndex].firstChild.nodeValue;              textNode.value = word;              lastTextValue = word;              clearPopup();              highLightIndex = -1;           } else {            //彈出框沒有內容被選中              alert("文本框中的內容:" + textNode.value + "被提交");                            clearPopup();           }             }        }        //處理鍵盤上下鍵事件的方法function moveHighLight(keyCode) {    var divNodes = popupNode.childNodes;    var length = divNodes.length;    if (length > 0) {        //只要在彈出框中有內容,并且顯示出來的時候才進行處理        if (keyCode == 38) {            //向上鍵按下            if (highLightIndex != -1) {                //表式當前已經有節(jié)點被高亮                divNodes[highLightIndex].style.backgroundColor = "white";                            }            highLightIndex--;            if (highLightIndex < 0) {                highLightIndex = length - 1;            }            divNodes[highLightIndex].style.backgroundColor = "#3366CC";                            } else if (keyCode == 40) {            //向下鍵按下            if (highLightIndex != -1) {                //表式當前已經有節(jié)點被高亮                divNodes[highLightIndex].style.backgroundColor = "white";            }            highLightIndex++;            if (highLightIndex > length - 1) {                highLightIndex = 0;            }            divNodes[highLightIndex].style.backgroundColor = "#3366CC";        }    }}        //處理服務器端數據返回的方法function callback(reponseText, responseXML) {    var rootElement;    if (responseXML != null && (rootElement = responseXML.documentElement) != null        && rootElement.nodeName == "words") {        //保證響應的XML存在,并且解析正確        //首先要獲取所有的單詞        var words = rootElement.getElementsByTagName("word");        var length = words.length;        if (length > 0) {            //先清除之前的內容            popupNode.innerHTML = "";            //重新初始化高亮的索引值            highLightIndex = -1;            for (var i = 0; i < length; i++) {                //取到單詞的內容                var wordValue = words[i].firstChild.nodeValue;                var divNode = document.createElement("div");                //定義div節(jié)點的id屬性為當前的索引值                divNode.id = i;                divNode.innerHTML = wordValue;                //給div節(jié)點增加鼠標進入,鼠標離開,鼠標點擊的事件                divNode.onmouseover = function() {                    if (highLightIndex != -1) {                        popupNode.childNodes[highLightIndex].style.backgroundColor = "white";                    }                    //this表式的就是divNode,當前節(jié)點變成高亮                    this.style.backgroundColor = "#3366CC";                    highLightIndex = this.id;                }                divNode.onmouseout = function() {                    popupNode.childNodes[highLightIndex].style.backgroundColor = "white";                    highLightIndex = -1;                }                divNode.onclick = function() {                    //高亮節(jié)點的文本內容添加到文本框中                    textNode.value = this.firstChild.nodeValue;                    lastTextValue = textNode.value;                    highLightIndex = -1;                    clearPopup();                    //讓文本框重新獲得焦點                    textNode.focus();                }                popupNode.appendChild(divNode);            }            //讓彈出框顯示出來            popupNode.style.display = "block";        } else {            //沒有單詞返回,清除彈出框            clearPopup();        }        //alert(rootElement.nodeName);    } else {        //沒有單詞返回,清除彈出框        clearPopup();    }}//處理與服務器交互失敗的方法function failback(status, statusText) {    //清除彈出框的內容    clearPopup();}        //用于清除彈出框的內容function clearPopup(){    popupNode.innerHTML = "";    popupNode.style.display = "none";}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费在线视频观看| 婷婷久久综合九色综合绿巨人| 亚洲人成小说网站色在线| 日韩国产欧美在线播放| 国产91在线|亚洲| 欧美一区二区三区在线看| 中文字幕日韩精品一区| 蜜桃av一区二区三区| 色噜噜狠狠色综合欧洲selulu| 精品久久久久一区| 日韩精品一二三区| 欧美性感一区二区三区| 亚洲欧洲性图库| 国产精品中文欧美| 日韩一区国产二区欧美三区| 青娱乐精品在线视频| 欧美特级限制片免费在线观看| 日韩一区二区三区电影| 一区二区三区欧美在线观看| 国产一区不卡精品| 日韩欧美一区电影| 日韩 欧美一区二区三区| 色欧美88888久久久久久影院| 中文一区一区三区高中清不卡| 麻豆精品久久精品色综合| 欧美精品一级二级三级| 一区二区三区欧美亚洲| 欧美亚洲一区二区在线| 一区二区在线看| 欧美亚洲动漫精品| 夜夜嗨av一区二区三区四季av| k8久久久一区二区三区| 国产精品国产a| k8久久久一区二区三区| 中文字幕一区二区三区不卡在线 | 99精品视频中文字幕| 国产日韩欧美在线一区| 国产成人亚洲精品青草天美| 久久久久国色av免费看影院| 风间由美一区二区av101| 国产精品毛片久久久久久久 | 日韩**一区毛片| 欧美一区二区三区四区五区| 美女国产一区二区三区| 精品裸体舞一区二区三区| 国产精品1区二区.| 国产精品欧美极品| 日本乱码高清不卡字幕| 香蕉乱码成人久久天堂爱免费| 欧美色电影在线| 久久精品国产一区二区| 久久精品一二三| av日韩在线网站| 亚洲一区二区三区在线播放| 91精品在线免费观看| 免费精品视频在线| 国产精品女主播av| 欧美午夜影院一区| 久久91精品国产91久久小草| 国产日韩欧美精品电影三级在线| 99在线视频精品| 五月天中文字幕一区二区| 久久久美女毛片| 色一区在线观看| 久久精品国产精品亚洲精品| 国产日产欧美一区二区三区| 91久久人澡人人添人人爽欧美| 97se亚洲国产综合自在线不卡 | 在线电影一区二区三区| 国产综合色精品一区二区三区| 国产精品无圣光一区二区| 欧美日韩国产片| 不卡视频一二三四| 琪琪久久久久日韩精品| 亚洲天堂精品视频| 精品国产91亚洲一区二区三区婷婷| 成人国产亚洲欧美成人综合网| 亚洲18影院在线观看| 国产精品毛片久久久久久| 欧美久久婷婷综合色| 成人国产精品免费观看动漫| 日韩vs国产vs欧美| 樱花影视一区二区| 国产片一区二区三区| 8x福利精品第一导航| 99久久国产综合色|国产精品| 麻豆中文一区二区| 一区二区三区视频在线看| 国产免费观看久久| 欧美一二三区精品| 精品视频免费在线| 色综合网站在线| 东方欧美亚洲色图在线| 蜜臀av性久久久久av蜜臀妖精| 亚洲黄色小说网站| 亚洲欧洲日产国产综合网| 国产亚洲女人久久久久毛片| 日韩一级在线观看| 91麻豆精品国产自产在线观看一区| av一二三不卡影片| 国产成人午夜精品影院观看视频| 日本午夜精品一区二区三区电影 | 久久久久久久久久久黄色| 69堂亚洲精品首页| 精品视频999| 日本高清不卡视频| 91在线国内视频| 欧美另类z0zxhd电影| 色综合 综合色| 色综合久久99| 在线观看国产日韩| 在线欧美小视频| 91久久精品日日躁夜夜躁欧美| 91视频在线观看| 一本色道久久综合精品竹菊| 成人美女在线观看| 成人在线一区二区三区| 国产盗摄一区二区| 豆国产96在线|亚洲| 成人免费视频播放| av在线综合网| 91成人免费在线视频| 欧美三级乱人伦电影| 欧美剧情电影在线观看完整版免费励志电影 | 国产麻豆成人传媒免费观看| 韩国精品久久久| 国产高清精品网站| 成人免费毛片app| 一本大道av一区二区在线播放| 色综合天天综合色综合av| 欧美主播一区二区三区美女| 欧日韩精品视频| 欧美一区午夜精品| 精品少妇一区二区三区免费观看| 欧美精品一区二区高清在线观看 | 欧美三级乱人伦电影| 欧美日韩国产片| 久久久综合激的五月天| 中文字幕免费在线观看视频一区| 日韩理论片在线| 蜜桃视频在线观看一区二区| 国产中文一区二区三区| 成人黄页在线观看| 欧美日韩二区三区| 久久青草国产手机看片福利盒子| 中文字幕一区三区| 日韩不卡手机在线v区| 国产 欧美在线| 欧美日韩精品二区第二页| 久久免费视频一区| 一区二区三区美女视频| 黄一区二区三区| 色天天综合色天天久久| 精品国产污网站| 樱桃国产成人精品视频| 国产一区激情在线| 91国在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲欧美一区二区三区极速播放| 亚洲第一会所有码转帖| 国产成人精品免费在线| 欧美日韩一本到| 久久成人久久爱| 91久久精品网| 国产精品妹子av| 久久99国产精品久久99| 日本道色综合久久| 国产欧美一区二区三区在线老狼| 亚洲第一狼人社区| 91麻豆文化传媒在线观看| 26uuuu精品一区二区| 午夜激情久久久| 91丨九色丨蝌蚪丨老版| 久久蜜臀中文字幕| 日本一区中文字幕 | 7777精品久久久大香线蕉 | 亚洲自拍偷拍综合| 国产精品一区二区男女羞羞无遮挡| 欧美网站一区二区| 国产精品久久福利| 国内成+人亚洲+欧美+综合在线| 91精品办公室少妇高潮对白| 欧美国产97人人爽人人喊| 精品在线免费观看| 欧美高清你懂得| 亚洲国产精品久久一线不卡| 国产99精品在线观看| 久久青草国产手机看片福利盒子 | 国产精品自拍毛片| 欧美一区二区三区成人| 亚洲电影第三页| 欧洲一区二区三区在线| 亚洲精品视频在线观看网站| 成人夜色视频网站在线观看| 国产午夜精品福利| 国产精品综合在线视频| 久久久久综合网| 国产精品一品二品| 欧美激情中文不卡| 国产91精品一区二区麻豆网站|