- 浏览: 256668 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dhunter:
mongodb 需要auth 怎么加呢?
linux下mongodb+nodejs环境搭建 -
y1d2y3xyz:
xie666 写道html.push('<td alig ...
javascript DOM操作性能-----创建DOM -
xie666:
html.push('<td align="c ...
javascript DOM操作性能-----创建DOM -
轩辕丶菓菓:
bushkarl 写道那我后台用struts2,我的name一 ...
Ext表单之loadRecord用法详解 -
heikediguo:
这样不会按照你想要的顺序加载。
加载JS文件
先看看效果
//js代码 //把百度的代码提出来了,然后根据我们自己项目的需求稍微做了些修改,效果和百度一样,只是我们这个去掉了表单提交 var suggestUrl = "http://192.168.1.110:8081//SearchService?method=intelSuggest";//这里是你请求数据的地址 (function() { var M = navigator.userAgent.indexOf("MSIE") != -1 && !window.opera; var V = (document.compatMode == "BackCompat"); function I(C) { return document.getElementById(C) } function K(C) { return document.createElement(C) } function S(C) { return String(C).replace(new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+\x24)", "g"), "") } function U(C) { return String(C).replace(new RegExp("[\\s\\t\\xa0\\u3000]", "g"), "") } function P(G, X, C) { if (M) { G.attachEvent("on" + X, (function(Y) { return function() { C.call(Y) } })(G)) } else { G.addEventListener(X, C, false) } } function N(C) { if (M) { C.returnValue = false } else { C.preventDefault() } } function R(X) { if (M) { var G = document.createStyleSheet(); G.cssText = X } else { var C = document.createElement("style"); C.type = "text/css"; C.appendChild(document.createTextNode(X)); document.getElementsByTagName("HEAD")[0].appendChild(C) } } function H(G) { var X = document.forms[0]; for (var Y in G) { if (!O(Y)) { X.appendChild(C(Y, G[Y])) } else { O(Y).value = G[Y] } } function C(Z, b) { var a = K("INPUT"); a.type = "hidden"; a.name = Z; a.id = "bdsug_ipt_" + Z; a.value = b; return a } } function O(Y) { var X = document.forms[0]; var G = false; var C = X.getElementsByTagName("INPUT"); for (var Z = 0; Z < C.length; Z++) { if (Y == C[Z].getAttribute("name")) { G = C[Z]; return G } else { G = false } } } function L(G) { var X = document.forms[0]; for (var C in G) { if (C == "f") { if (O("f")) { if (O("f").id == "bdsug_ipt_f") { X.removeChild(I("bdsug_ipt_f")) } else { O("f").value = "8" } } } else { if (I("bdsug_ipt_" + C)) { X.removeChild(I("bdsug_ipt_" + C)) } } } } var A = 0; if (typeof window.bdsug != "object" || window.bdsug == null) { window.bdsug = {} } bdsug.sug = {}; bdsug.sugkeywatcher = {}; var J = (function() { function C(b) { var Z = this.__MSG_QS__; if (!Z[b]) { Z[b] = [] } for (var a = 1, X = arguments.length, Y; a < X; a++) { Z[b].push(arguments[a]) } } function G(Y) { var Z = this.__MSG_QS__[Y.type]; if (Z == null) { return } for (var a = 0, X = Z.length; a < X; a++) { Z[a].rm(Y) } } return { ini: function(X) { X.__MSG_QS__ = {}; X.on = C; X.dm = G; return X } } })(); var F = (function() { var X = I("imeiName"); var f; var h = 0; var C = 0; var d = ""; var Y = ""; var c; var j = false; var a = true; function Z() { if (a) { A = new Date().getTime(); F.dm({ type: "start" }); a = false } } function e(n) { if (a) { A = new Date().getTime(); F.dm({ type: "start" }); a = false } n = n || window.event; if (n.keyCode == 9 || n.keyCode == 27) { F.dm({ type: "hide_div" }) } if (n.keyCode == 13) { N(n); F.dm({ type: "key_enter" }) } if (n.keyCode == 86 && n.ctrlKey) { H({ n: 2 }) } if (f.style.display != "none") { if (n.keyCode == 38) { N(n); F.dm({ type: "key_up" }) } if (n.keyCode == 40) { F.dm({ type: "key_down" }) } } else { if (n.keyCode == 38 || n.keyCode == 40) { F.dm({ type: "need_data", wd: X.value }) } } } function k() { var n = X.value; if (n == d && n != "" && n != Y && n != c) { if (C == 0) { C = setTimeout(function() { F.dm({ type: "need_data", wd: n }) }, 100) } } else { clearTimeout(C); C = 0; d = n; if (n == "") { F.dm({ type: "hide_div" }) } if (Y != X.value) { Y = "" } } } function l() { h = setInterval(k, 10) } function g() { clearInterval(h) } function i() { if (j) { window.event.cancelBubble = true; window.event.returnValue = false; j = false } } function b(n) { X.blur(); X.setAttribute("autocomplete", n); X.focus() } function G(n) { var n = n || window.event; if (n.keyCode == 13) { N(n) } } X.setAttribute("autocomplete", "off"); var m = false; bdsug.sugkeywatcher.on = function() { if (!m) { if (M) { X.attachEvent("onkeydown", e) } else { X.addEventListener("keydown", e, false) } m = true } }; bdsug.sugkeywatcher.off = function() { if (m) { if (M) { X.detachEvent("onkeydown", e) } else { X.removeEventListener("keydown", e, false) } m = false } }; bdsug.sugkeywatcher.on(); P(X, "mousedown", Z); P(X, "beforedeactivate", i); if (window.opera) { P(X, "keypress", G) } return J.ini({ rm: function(n) { switch (n.type) { case "div_ready": f = n.sdiv; Y = X.value; l(); break; case "clk_submit": g(); X.blur(); X.value = n.wd; break; case "ent_submit": g(); X.blur(); break; case "key_select": c = n.selected; break; case "close": g(); b("on"); break; case "mousedown_tr": if (navigator.userAgent.toLowerCase().indexOf("webkit") != -1) { g(); setTimeout(l, 2000) } j = true; break } } }) })(); var W = (function() { var h; var a = I("imeiName"); var l; var d = -1; var C; var m; var o; function n() { var r = l.rows; for (var q = 0; q < r.length; q++) { r[q].className = "ml" } } function e() { if (typeof(l) != "undefined" && l != null && h.style.display != "none") { var r = l.rows; for (var q = 0; q < r.length; q++) { if (r[q].className == "mo") { return [q, r[q].cells[0].innerHTML] } } } return [ - 1, ""] } function i() { if (M) { o.style.display = "none" } h.style.display = "none" } function G() { n(); this.className = "mo" } function b(q) { W.dm({ type: "mousedown_tr" }); if (!M) { q.stopPropagation(); q.preventDefault(); return false } } function c(q) { var r = q; return function() { var s = C[r]; i(); I("imeiName").value = s; I("imeiName").focus(); /*W.dm({ type: "clk_submit", oq: I("imeiName").value, wd: s, rsp: r })*/ } } function f(q) { q = q || window.event; N(q); W.dm({ type: "close" }); i(); //(new Image()).src = "http://www.gpsoo.new/w.gif?fm=suggestion&title=%B9%D8%B1%D5&t=" + new Date().getTime() } function X() { var q = [a.offsetWidth, a.offsetHeight]; h.style.width = ((M && V) ? q[0] : q[0] - 2) + "px"; h.style.top = ((M && V) ? q[1] : q[1] - 1) + "px"; h.style.display = "block"; if (M) { o.style.top = ((M && V) ? q[1] : q[1] - 1) + "px"; o.style.width = ((M && V) ? q[0] : q[0] - 2) + "px" } } function Y(r, q) { if (r && q) { var s = S(r); if (q.indexOf(s) == 0) { q = p(q, s) } else { if (q.indexOf(U(r)) == 0) { s = U(r); q = p(q, s) } else {} } } q = q.replace("&", "&"); return q } function p(q, s) { var t = "<span>" + s + "</span>"; var u = s.length; var r = "<b>" + q.substring(u) + "</b>"; return (t + r) } function j() { l = K("TABLE"); l.id = "st"; l.cellSpacing = 0; l.cellPadding = 2; var s = K("tbody"); l.appendChild(s); for (var t = 0, u = C.length; t < u; t++) { var r = s.insertRow( - 1); P(r, "mouseover", G); P(r, "mouseout", n); P(r, "mousedown", b); P(r, "click", c(t)); var q = r.insertCell( - 1); q.innerHTML = Y(m, C[t]) } h.innerHTML = ""; h.appendChild(l); X(); if (M) { o.style.display = "block"; o.style.left = 0 + "px"; o.style.top = a.offsetHeight + "px"; o.style.width = a.offsetWidth + "px"; o.style.height = h.offsetHeight - 10 + "px" } } function Z() { d = e()[0]; if (d == -1) { W.dm({ type: "submit" }) } else { W.dm({ type: "ent_submit", oq: m, wd: e()[1], rsp: d }) } } function k() { d = e()[0]; n(); if (d == 0) { W.dm({ type: "key_select", selected: "" }); I("imeiName").value = m; d--; L({ oq: m, sug: C[d], n: 1, rsp: d, f: 3 }) } else { if (d == -1) { d = C.length } d--; var q = l.rows[d]; q.className = "mo"; W.dm({ type: "key_select", selected: C[d] }); I("imeiName").value = C[d]; H({ oq: m, sug: C[d], n: 1, rsp: d, f: 3 }) } } function g() { d = e()[0]; n(); if (d == C.length - 1) { W.dm({ type: "key_select", selected: "" }); I("imeiName").value = m; d = -1; L({ oq: m, sug: C[d], n: 1, rsp: d, f: 3 }) } else { d++; var q = l.rows[d]; q.className = "mo"; W.dm({ type: "key_select", selected: C[d] }); I("imeiName").value = C[d]; H({ oq: m, sug: C[d], n: 1, rsp: d, f: 3 }) } } return J.ini({ rm: function(q) { switch (q.type) { case "div_ready": h = q.sdiv; o = q.frm; break; case "give_data": m = q.data.q; C = q.data.s; if (C.length != 0) { j() } else { i() } break; case "key_enter": Z(); break; case "key_up": k(); break; case "key_down": g(); break; case "hide_div": i(); break; case "mousedown_other": i(); break; case "window_blur": i(); break; case "need_resize": X(); break } } }) })(); var T = (function() { var C = document.forms[0]; function G() { if (I("bdsug_ipt_sug")) { if (I("bdsug_ipt_sug").value == S(I("imeiName").value)) { L({ n: 1, sug: 1 }) } else { L({ f: 1 }) } } } P(C, "submit", G); function X() { G(); //C.submit() } function Y(Z) { H(Z); L({ sug: 1, n: 1 }); //C.submit() } return J.ini({ rm: function(Z) { switch (Z.type) { case "clk_submit": case "ent_submit": Y({ oq: Z.oq, rsp: Z.rsp, f: 3, sugT: (new Date().getTime() - A) }); break; case "submit": X(); break } } }) })(); var B = (function() { var G = {}; function X(C) { if (typeof G[C] == "undefined") { B.dm({ type: "request_data", wd: C }) } else { B.dm({ type: "give_data", data: G[C] }) } } function Y(C) { G[C.q] = C; B.dm({ type: "give_data", data: G[C.q] }) } return J.ini({ rm: function(C) { switch (C.type) { case "response_data": Y(C.data); break; case "need_data": X(C.wd); break } } }) })(); var Q = (function() { var C; var X; function G(Y) { Q.dm({ type: "need_cookie" }); if (C) { document.body.removeChild(C) } C = K("SCRIPT"); C.src = suggestUrl+"&wd=" + encodeURIComponent(Y) + "&callback=window.bdsug.sug&t=" + (new Date()).getTime(); //C.charset = "gb2312"; document.body.appendChild(C) } return J.ini({ rm: function(Y) { switch (Y.type) { case "request_data": G(Y.wd); break; case "give_cookie": var Z = Y.sug; if (Z > 0) { Z = 3 } X = Z; break } } }) })(); bdsug.sug = function(C) { bdsug.dm({ type: "response_data", data: C }) }; bdsug.initSug = function() { bdsug.dm({ type: "init" }) }; J.ini(bdsug); var E = (function() { function C() { if (navigator.cookieEnabled) { document.cookie = "su=0; domain=www.goocar.net" } } function G() { var X = (navigator.cookieEnabled && /sug=(\d)/.test(document.cookie) ? RegExp.$1: 3); E.dm({ type: "give_cookie", sug: X }) } return J.ini({ rm: function(X) { switch (X.type) { case "close": C(); break; case "need_cookie": G(); break } } }) })(); var D = (function() { var Z = I("imeiName"); var C; var c = document.forms[0]; var Y; function a() { if (C.offsetWidth != 0 && Z.offsetWidth != C.offsetWidth) { D.dm({ type: "need_resize" }) } } function d() { C = K("DIV"); C.id = "sd_" + new Date().getTime(); C.style.display = "none"; c.appendChild(C); if (M) { Y = K("IFRAME"); Y.style.display = "none"; Y.style.position = "absolute"; C.parentNode.insertBefore(Y, C) } } function b(e) { e = e || window.event; var f = e.target || e.srcElement; if (f == Z) { return } while (f = f.parentNode) { if (f == C) { return } } D.dm({ type: "mousedown_other" }) } function X() { D.dm({ type: "window_blur" }) } function G() { var f = "#" + C.id; var e = []; D.dm({ type: "div_ready", sdiv: C, frm: Y }); setInterval(a, 100); P(document, "mousedown", b); P(window, "blur", X); e.push(f + "{border:1px solid #817F82;position:absolute;top:28px;left:0}"); e.push(f + " table{width:100%;background:#fff;cursor:default}"); e.push(f + " td{font:14px verdana;line-height:20px;text-indent:6px}"); e.push(f + " td b{color:#333}"); e.push(f + " .mo{background-color:#E2EAFF}"); e.push(f + " .ml{background-color:#fff}"); R(e.join("")) } bdsug.sug.initial = G; return J.ini({ rm: function(e) { switch (e.type) { case "start": G(); break; case "init": d(); break } } }) })(); F.on("need_data", B); F.on("close_div", W); F.on("key_enter", W); F.on("key_up", W); F.on("key_down", W); F.on("hide_div", W); F.on("start", D); B.on("request_data", Q); B.on("give_data", W); bdsug.on("response_data", B); bdsug.on("init", D); W.on("clk_submit", F, T); W.on("ent_submit", F, T); W.on("submit", T); W.on("key_select", F); W.on("close", F, E); W.on("mousedown_tr", F); D.on("mousedown_other", W); D.on("need_resize", W); D.on("div_ready", F, W); D.on("window_blur", W); Q.on("need_cookie", E); E.on("give_cookie", Q); window.bdsug.initSug() })(); //服务端返回的数据格式为:window.bdsug.sug({q:"a",p:true,s:["京AG4015","桂CA2755","桂CA2755xx","粤A9837G","苏KA2047","苏KA2047xx","苏KA3700","苏KA3700xx","苏A1X835","鄂AN9D29"]}) //window.bdsug.sug 这个函数是由前端传过去的,前段传过去的参数有:callback(在这个就是window.bdsug.sug这个值),wd(搜索的关键字),其他的参数根据你需要,由于是get方式请求的,后面最好加个随机值,这样避免URL请求缓存了 页面的HTML代码很简单: <form name="f"><input type="text" name="imeiName" id="imeiName" /></form>
发表评论
-
jquery validation使用说明
2014-05-05 22:50 718http://www.cnblogs.com/hejunrex ... -
jquery源码-jQuery.callback()
2013-03-12 17:21 0源码919~1099行,该函数主要是对callback的fn进 ... -
jquery源码-jquery.ready.promise(obj)
2013-03-04 22:33 0jQuery.ready.promise = functi ... -
jquery源码-jquery基本操作函数(utils)
2013-02-21 14:06 3638源码355~905行,这一节的源码部分比较长,不会对所有的代码 ... -
jquery源码-jquery.extend()
2013-02-14 12:36 1828源码291~353行,jQuery.extend函数(util ... -
jquery源码-jquery()
2013-02-13 14:22 1902源码95~289行,jquery.fn核 ... -
jquery源码-jquery变量定义
2013-02-10 15:08 2811源码 15~93行,jquery变量定义 var // ... -
jquery源码-代码结构
2013-02-08 15:09 1265/*! * jQuery JavaScript L ... -
jquery源码-框架入口
2013-02-06 17:48 1345从Jquery整个代码看,入口就是一个自执行的闭包函数 ... -
javascript实现自动换列
2011-11-03 12:25 1615在应用Extjs的桌面应用desktop中遇到这个问题,图标需 ... -
构造函数作用域的安全
2011-10-30 23:48 1239在创建javascrip对象的时候,我们用得最多的写法可能就是 ... -
javascript DOM操作性能-----创建DOM
2011-10-30 22:57 1789在很多时候我们都需要创建一系列的元素节点,就像如下的操作一样: ... -
javascript闭包应用之匿名函数
2011-09-24 13:22 1682今天看到javascrip组有问朋友问 (function() ... -
Javascript之prototype 原型重写
2011-09-19 23:07 1841function Person(){} var pe ... -
Javascript之Number
2011-09-15 00:31 1374//一切从基础开始,之 ... -
Javascript之Undefined和null
2011-09-13 22:01 799var abc = null; alert(typeof ... -
Javascript之Undefined你可能不知道的
2011-09-13 21:43 1118var abc ; alert(abc);// ... -
js中event对象集合
2011-08-26 22:42 1293JS中判断鼠标按键的问 ... -
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011-08-04 21:26 1097一个很棒的 blog 文章 ... -
一个简单的AJAX类
2011-04-26 17:35 977<!DOCTYPE html PUBLIC &quo ...
相关推荐
这也是一个整合hibernate与struts连接数据库的项目,利用jQuery实现界面布局,ajax发送请求,即获取数据,轻巧的jQuery只用了仅仅30行代码就完成模仿百度或Google的suggest的模块功能,而且还附加了双击事件和回车...
JQuery插件Suggest来做那些机票预订网站中的输入智能提示功能,这个功能对于用户体验性来说,挺不错的,用于实现类似百度的智能提示功能也是一个不错的选择。
jQuery Suggest 插件是一种强大的前端开发工具,它能够为用户在输入框中提供实时的建议和匹配,类似于百度和Google搜索的自动补全功能。这种功能对于提高用户体验、简化用户输入过程具有显著效果。在网页应用中,它...
**KISSY.Suggest** 是一个JavaScript库,用于实现类似于百度和淘宝的输入提示补全功能。这个组件是基于KISSY框架构建的,旨在提供高效、易用且可定制的自动补全体验,适用于网页上的搜索框或者任何需要动态建议的...
虽然百度的实现可能有自己的特点和优化,但其基本原理与GoogleSuggest相似,包括实时性、相关性和流行度的考虑。开发者在实现类似功能时,可以参考Google的技术经验,结合自身平台的特点进行定制化开发。 综上所述...
"Python百度地图商家爬虫"项目就是利用Python编程语言来抓取百度地图上的商家信息,以便进行数据分析或构建自己的数据库。这个项目涉及到的主要知识点包括Python的基础语法、网络请求库、解析HTML或JSON数据、数据...
这个"GoogleSuggest-src.zip"压缩包文件可能包含了一个使用Qt库实现的项目,用于模拟获取百度搜索下拉列表的过程,这在分析搜索引擎行为、优化网站关键词或者进行自动化测试时非常有用。 Qt是一个跨平台的C++图形...
在项目的"**Suggest**"部分,很可能包含了实现搜索建议功能的代码或者资源。可能包括了一个JavaScript文件,用于监听用户在搜索框中的输入事件,当输入发生变化时,通过Ajax发送异步请求到服务器,服务器端的Java...
### 输入框信息提示的实现(仿google、百度搜索框) #### 概述 本文将详细介绍如何实现一个类似于Google和百度搜索框的输入框信息提示功能。该功能可以在用户输入文字时,从数据库中获取相关建议并实时展示,极大...
仿百度下拉,支持一个页面内出现多个不同的查询,使用方法简单易用。使用时需要先导入jquery1.9以上版本 // 调用方式 $("#xx").suggest({ url : "请求地址", field : "请求参数名称", // 查询结果中也必须包含该...
script.src = 'http://suggest.baidu.com/su?wd=关键字&cb=handleResponse'; document.head.appendChild(script); ``` 在这个例子中,我们创建了一个`<script>`标签,并将其`src`设置为百度自动补全的API URL,其中...
例如,你可以设置`AutoCompleteSource`为`CustomSource`,然后创建一个`AutoCompleteStringCollection`,添加可能的搜索关键词,最后设置`AutoCompleteMode`为`SuggestAppend`或`Suggest`,前者会在用户输入时显示...
实现百度效果 自动显示数据库中的数据,主要代码如下: <script type='text/javascript' src='/excelDemo/dwr/interface/jshow.js'></script> <script type='text/javascript' src='/excelDemo/dwr/engine.js'>...
标题"仿百度、google的智能提示"指的是实现类似百度或Google搜索引擎在用户输入时自动提供搜索建议的功能。这种功能通常被称为自动补全或智能提示,能够提高用户搜索效率,减少输入错误。 描述中提到,这个功能是...
在项目中,"Suggest"可能是包含实现这个功能的相关文件夹或文件,可能包含了JSP文件、JavaScript文件、CSS文件和可能的数据库配置文件等。具体实现细节可能包括JSP中SQL查询语句的编写,JavaScript中Ajax请求的构造...
在IT行业中,构建一个类似于百度搜索的交互式搜索功能是一项常见的需求,这通常涉及到前端的JavaScript(特别是Ajax)技术和后端的PHP编程。本项目"php+ajax仿造百度搜索效果"旨在通过这两种技术实现一个实时、无...
def suggest(request): keyword = request.GET.get('keyword') suggestions = SearchKeyword.objects.filter(keyword__startswith=keyword)[:10] # 获取前10个匹配项 return JsonResponse(list(suggestions....
this.$http.jsonp('https://sug.so.360.cn/suggest', { // 发起jsonp请求到360搜索引擎 params: { // 设置请求参数 word: this.t1 } }).then(function (res) { this.myData = res.data.s; // 处理返回的数据 ...
ajax实现输入提示(类似百度和Google的输入提示) 用法非常简单: 1、在jsp页面引入autosuggest.js文件 2、建一个text文本框 3、写js代码: <script> new actb("tb", loadAllMessage("suggest" , ""), null); 4、这...