亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

利用jsonp跨域調用百度js實現搜索框智能提示

2019-11-20 09:10:05
字體:
來源:轉載
供稿:網友

項目中常常用到搜索,特別是導航類的網站。自己做關鍵字搜索不太現實,直接調用百度的是最好的選擇。
使用jquery.ajax的jsonp方法可以異域調用到百度的js并拿到返回值,當然$.getScript也可以實現跨域調用js。 

ok,了解了jsonp的原理和應用后,我們看看百度的智能提示是如何做的
在chrome的調試窗口下看看百度搜索發出的請求。當輸入關鍵字“a”,請求如圖: 

用firebug看下請求的參數,如圖:

請求方式:get請求
請求參數:wd明顯是要搜索的關鍵字;cb是請求回來的處理函數,名字可以隨便給;t是時間戳,防止緩存的;p不知道什么意思,每次請求都給3就可以了;sid也不知道什么意思,不要也可以請求,如果想要也可以帶上,值就是上面截圖的值。

 請求地址和參數都知道了,于是寫下如下js測試是否可以拿到關鍵字提示(源碼里的test.html頁面): 

var qsData = { 'wd': ‘a', 'p': '3', 'cb': 'getData', 't': new Date().getMilliseconds().toString() };  $.ajax({   async: false,   url: "http://suggestion.baidu.com/su",   type: "GET",   dataType: 'jsonp',   jsonp: 'jsoncallback',   data: qsData,   timeout: 5000,   success: function (json) {   },   error: function (xhr) {   } });

qsData封裝所有請求要發送的參數;getData是自定義的名稱,用于處理返回的關鍵字(以下示例代碼把請求回來的關鍵字打印到了FireBug的控制臺): 

 function getData(data) {   var Info = data['s']; //獲取異步數據   console.log(Info);  } 

監控下文本框,實時的發送ajax請求并拿回數據是這樣的: 

ok,測試可用,的確可以拿到關鍵字提示。但是總不能把一堆關鍵字放到前臺讓用戶看,至少得跟百度一樣,可以用鼠標和鍵盤方向鍵從候選詞框里選詞吧。
最關鍵的來了,現在開始寫完整的智能提示并配合鼠標和鍵盤對候選詞的操作(源碼里的index.html頁面),實現如下功能:
 1.即時監控字母鍵和數字鍵,按下就發ajax請求(也可以設置延遲發請求,源碼里有);同時監控空格、退格、Delete、Enter等鍵;
 2.鼠標移入彈出層高亮選中的行,點擊可上屏;
 3.按鍵盤上下方向鍵可以選擇候選詞,回車提交跳轉到百度搜索頁面;
 4.點擊頁面其他部位自動隱藏彈出框;
 5.按ESC鍵隱藏彈出框 

 監控鼠標和鍵盤輸入的js(autoComplete.js 源碼里有更詳細的注釋): 

var timeoutId; //延遲請求服務器var highlightindex = -1; //高亮標記$(function () { $("#searchText").keyup(function (event) {  var myEvent = event || window.event;  var keyCode = myEvent.keyCode;  //console.log(keyCode);  //監控鍵盤  if (keyCode >= 65 && keyCode <= 90 || keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 111 || keyCode >= 186 && keyCode <= 222 || keyCode == 8 || keyCode == 46 || keyCode == 32 || keyCode == 13) {   //延時操作   //clearTimeout(timeoutId);   //timeoutId = setTimeout(function () {   //   timeoutId = FillUrls();   //    }, 500)   FillUrls(); //異步請求   if (highlightindex != -1) {    highlightindex = -1;   }  }  else if (keyCode == 38 || keyCode == 40) {   if (keyCode == 38) {  //向上    var autoNodes = $("#auto").children("div")    if (highlightindex != -1) {     autoNodes.eq(highlightindex).css("background-color", "white");     highlightindex--;    } else {     highlightindex = autoNodes.length - 1;    }    if (highlightindex == -1) {     highlightindex = autoNodes.length - 1;    }    autoNodes.eq(highlightindex).css("background-color", "#ebebeb");    var comText = autoNodes.eq(highlightindex).text();    $("#searchText").val(comText);   }   if (keyCode == 40) { //向下    var autoNodes = $("#auto").children("div")    if (highlightindex != -1) {     autoNodes.eq(highlightindex).css("background-color", "white");    }    highlightindex++;    if (highlightindex == autoNodes.length) {     highlightindex = 0;    }    autoNodes.eq(highlightindex).css("background-color", "#ebebeb");    var comText = autoNodes.eq(highlightindex).text();    $("#searchText").val(comText);   }  } else if (keyCode == 13) {  //回車   if (highlightindex != -1) {    var comText = $("#auto").hide().children("div").eq(highlightindex).text();    highlightindex = -1;    $("#searchText").val(comText);   } else {    $("#auto").hide();    $("#searchText").get(0).blur();   }  } else if (keyCode == 27) { //按下Esc 隱藏彈出層   if ($("#auto").is(":visible")) {    $("#auto").hide();   }  } });

最后實現效果展示??梢允髽诉x擇候選詞也可以鍵盤方向鍵選擇,點擊即可上屏,回車直接跳到百度頁面:

源碼下載:http://xiazai.VeVB.COm/201608/yuanma/baidusearch(VeVB.COm).rar

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日韩免费| 狠狠色噜噜狠狠狠狠97| 久久久国产精品免费| 欧美日产国产成人免费图片| 国产色婷婷国产综合在线理论片a| 欧美性色19p| 欧美在线观看一区二区三区| 国产精品久久久久国产a级| 中文字幕日韩av| 中文字幕精品久久久久| 日韩av免费在线| 一本色道久久88综合日韩精品| 日韩国产激情在线| 欧美丰满少妇xxxxx| 国产一区二区三区丝袜| 国产精品久久久久一区二区| 555www成人网| 国产成人亚洲综合青青| 日韩av综合网站| 日韩av电影在线播放| 久热在线中文字幕色999舞| 精品小视频在线| 亚洲欧美日韩精品久久奇米色影视| 国产精品久久一区| 日韩av免费在线看| 国产丝袜高跟一区| 欧美一区二区三区免费视| 欧洲成人在线视频| 久久福利视频导航| 日韩精品免费观看| 国产精品av在线播放| 九九九热精品免费视频观看网站| 亚洲va码欧洲m码| 一区二区亚洲欧洲国产日韩| 日韩**中文字幕毛片| 欧美另类老肥妇| 成人激情综合网| 国产精品美女呻吟| 欧美视频在线免费| 亚洲视频在线观看视频| 青青草成人在线| 91成人国产在线观看| 国产成人精品视频在线| 亚洲人成在线电影| 亚洲aa在线观看| 欧美国产日韩二区| 91美女片黄在线观看游戏| 在线播放日韩精品| 亚洲最大成人在线| 91探花福利精品国产自产在线| 欧美成人午夜免费视在线看片| 国产成人免费av电影| 亚洲欧美日韩国产精品| 黄色一区二区在线观看| 欧美视频专区一二在线观看| 日本最新高清不卡中文字幕| 日韩精品视频三区| 国模私拍视频一区| 一区二区三区视频免费| 久久精品亚洲94久久精品| 亚洲精品女av网站| 精品国偷自产在线视频99| 国产99久久精品一区二区| 国产69久久精品成人| 欧美疯狂做受xxxx高潮| 91香蕉嫩草影院入口| 日韩电影中文字幕在线观看| 午夜精品视频在线| 久久精品2019中文字幕| 久久国产精品久久精品| 欧美亚洲国产日韩2020| 国产综合久久久久久| 亚洲色图偷窥自拍| 欧美日韩中文字幕综合视频| 色噜噜国产精品视频一区二区| 亚洲精品之草原avav久久| 国产精品网址在线| 不用播放器成人网| 欧美不卡视频一区发布| 亚洲精品久久久久久久久久久久| 亚洲福利小视频| 深夜精品寂寞黄网站在线观看| 亚洲欧美国产日韩中文字幕| 国产精品盗摄久久久| 色先锋久久影院av| xxx一区二区| 成人欧美一区二区三区在线湿哒哒| 久久亚洲欧美日韩精品专区| 国产精品福利网| 亚洲国产成人在线视频| 亚洲国产精品成人va在线观看| 亚洲韩国青草视频| 精品国产乱码久久久久久虫虫漫画| 精品人伦一区二区三区蜜桃免费| 中文字幕精品影院| 亚洲国产精品免费| 成人亚洲欧美一区二区三区| 欧美在线影院在线视频| 欧美激情伊人电影| 久久久久亚洲精品成人网小说| 久久视频国产精品免费视频在线| 国产中文字幕91| 欧美激情精品久久久久久久变态| 亚洲人成网站999久久久综合| 日韩视频在线免费| www.色综合| 国产美女久久久| 亚洲天堂成人在线| 亚洲高清在线观看| 欧美大片va欧美在线播放| 欧美精品情趣视频| 亚洲精品美女在线| 国产精品视频最多的网站| 美女精品久久久| 久久中文字幕视频| 久久视频免费观看| 国产在线日韩在线| 国产精品一区二区三区久久| 亚洲欧美日韩精品久久亚洲区| 亚洲字幕一区二区| 91日韩在线播放| 日韩精品在线视频观看| 欧美成人激情图片网| 欧美精品在线看| 91国产高清在线| 成人免费看吃奶视频网站| 久久av在线播放| 国产精品久久久久久久久久久久久| 欧美国产高跟鞋裸体秀xxxhd| 欧美日韩免费一区| 日韩中文字幕网站| 欧美一区二区三区图| 18一19gay欧美视频网站| 欧美激情视频一区二区| 成人a在线视频| 亚洲xxxx做受欧美| 一区二区三区无码高清视频| 丰满岳妇乱一区二区三区| 97香蕉久久夜色精品国产| 国产精品青草久久久久福利99| 中文字幕免费精品一区高清| 国产日韩欧美在线| 久久99精品久久久久久琪琪| 成人国产精品av| 中文字幕国产亚洲| 亚洲精品一区在线观看香蕉| 国产精品久久网| 国产精品黄视频| 国产视频福利一区| 欧美激情第1页| 精品国内自产拍在线观看| 日韩美女视频免费在线观看| 国产区精品在线观看| 亚洲色图激情小说| 欧美精品一区在线播放| 日韩欧美在线播放| 在线看日韩欧美| 青草青草久热精品视频在线网站| 亚洲自拍偷拍一区| 色阁综合伊人av| 色综合天天综合网国产成人网| 亚洲视频欧美视频| 78色国产精品| 亚洲xxxx在线|