鱼跃于渊
First know how, Second know why !
posts - 0, comments - 1, trackbacks - 0, articles - 49
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
留言簿
(1)
给我留言
查看公开留言
查看私人留言
文章分类
j2se (5)
javascript相关(16)
平时小练习(3)
精品网摘(16)
网页外观(2)
设计模式(4)
文章档案
2008年12月 (19)
2008年11月 (1)
2008年10月 (2)
2008年9月 (27)
搜索
最新评论
1. re: ajax 做图片幻灯片[未登录]
NICE
--^_^
用ajax 仿百度谷歌搜索的下拉提示
Posted on 2008-09-25 17:44
鱼跃于渊
阅读(657)
评论(0)
编辑
收藏
所属分类:
javascript相关
在用到实例中时 : 可把关键字定时从数据库中取出来生成到一个XML文件中, 这样能提高效率, 也便于AJAX取得数据.
这里只是提供一个思路和一个小小的实现 .
ajax09.html
<!
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
>
<
html
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=UTF-8"
>
<
title
>
Insert title here
</
title
>
<
style
type
="text/css"
>
.suggestions
{
}
{
background-color
:
#FFF
;
padding
:
2px 6px
;
border
:
1px solid #000
;
width
:
60px
;
}
.suggestions:hover
{
}
{
background-color
:
#69F
;
}
#searchField.error
{
}
{
background-color
:
#FFC
;
}
</
style
>
<
script
type
="text/javascript"
>
var
xhr
=
false
;
var
statesArray
=
new
Array() ;
window.onload
=
initAll ;
function
initAll()
{
//
alert(document.getElementById("popups").innerHTML) ;
//
document.getElementById("popups").onmouseover = test ;
setArray() ;
initArray() ;
document.getElementById(
"
searchField
"
).onkeyup
=
searchSuggest ;
document.getElementById(
"
searchField
"
).onblur
=
hideDiv ;
}
function
test(evt)
{
var
thisDiv
=
evt
?
evt.target : window.event.srcElement ;
thisDiv.innerHTML
=
"
haha
"
;
document.getElementById(
"
popups
"
).appendChild(thisDiv) ;
}
function
initArray()
{
statesArray[
0
]
=
"
china
"
;
statesArray[
1
]
=
"
jappan
"
;
statesArray[
2
]
=
"
USA
"
;
statesArray[
3
]
=
"
UK
"
;
statesArray[
4
]
=
"
chinabbc
"
;
statesArray[
5
]
=
"
UKYSB
"
;
statesArray[
6
]
=
"
UKL
"
;
statesArray[
7
]
=
"
chincbin
"
;
}
function
searchSuggest()
{
var
str
=
document.getElementById(
"
searchField
"
).value ;
//
alert(str) ;
if
(str
!=
""
)
{
document.getElementById(
"
popups
"
).innerHTML
=
""
;
for
(
var
i
=
0
; i
<
statesArray.length; i
++
)
{
var
state
=
statesArray[i] ;
if
(state.toLowerCase().indexOf(str.toLowerCase())
==
0
)
{
var
tempDiv
=
document.createElement(
"
div
"
) ;
tempDiv.innerHTML
=
state ;
tempDiv.className
=
"
suggestions
"
;
tempDiv.onclick
=
makeChoice ;
document.getElementById(
"
popups
"
).appendChild(tempDiv) ;
}
}
}
var
resultcount
=
document.getElementById(
"
popups
"
).childNodes.length ;
//
alert(resultcount) ;
if
(resultcount
==
0
)
{
//
alert(resultcount) ;
document.getElementById(
"
searchField
"
).className
=
"
error
"
;
}
if
(resultcount
==
1
)
{
//
alert(resultcount) ;
document.getElementById(
"
searchField
"
).value
=
document.getElementById(
"
popups
"
).childNodes[
0
].innerHTML ;
document.getElementById(
"
popups
"
).innerHTML
=
""
;
}
}
function
makeChoice(evt)
{
//
alert("makeChoice !") ;
var
thisDiv
=
evt
?
evt.target : window.event.srcElement ;
//
alert(thisDiv.innerHTML) ;
document.getElementById(
"
searchField
"
).value
=
thisDiv.innerHTML ;
document.getElementById(
"
popups
"
).innerHTML
=
""
;
}
function
setArray()
{
if
(window.XMLHttpRequest)
{
xhr
=
new
XMLHttpRequest() ;
}
else
{
if
(window.ActiveXObject)
{
try
{
xhr
=
new
ActiveXObject(
"
Microsoft.XMLHttpRequest
"
) ;
}
catch
(e)
{}
}
}
if
(xhr)
{
xhr.onreadystatechange
=
showContents ;
xhr.open(
"
GET
"
,
"
ajax09.xml
"
,
true
) ;
xhr.send(
null
) ;
}
else
{
document.getElementById(
"
preWin
"
).innerHTML
=
"
sorry ! but your pc coundn't create a xhr object !
"
;
}
}
function
showContents()
{
if
(xhr.readyState
==
4
)
{
if
(xhr.status
==
200
)
{
var
msg
=
xhr.responseXML.getElementsByTagName(
"
item
"
) ;
}
else
{
var
msg
=
"
error status =
"
+
xhr.status ;
}
for
(
var
i
=
0
; i
<
msg.length; i
++
)
{
//
alert(msg[i].childNodes[0].nodeValue) ;
statesArray[i]
=
msg[i].childNodes[
0
].nodeValue ;
}
}
}
</
script
>
</
head
>
<
body
>
<
center
>
please input some worlds :
<
br
/>
<
input
type
="text"
name
="searchField"
value
=""
size
="60px"
/><
br
/>
<
div
id
="popups"
>
ddd
</
div
>
<
input
type
="submit"
value
="submit"
/><
br
/><
br
/>
</
center
>
</
body
>
</
html
>
ajax09.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<
states
>
<
item
>
china
</
item
>
<
item
>
jappan
</
item
>
<
item
>
USA
</
item
>
<
item
>
UK
</
item
>
<
item
>
chinabbc
</
item
>
<
item
>
UKYSB
</
item
>
<
item
>
UKL
</
item
>
<
item
>
chincbin
</
item
>
</
states
>
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
javascript的作用域和闭包
javascript后台菜单
addEventListener-有用的笔记
addEventListener-event 对象的属性和方法
addEventListener-第三个参数 useCapture
addEventListener-事件流
addEventListener-开始
JS:attachEvent和addEventListener 使用方法
JavaScript(js)静态页面传值之Cookie篇
js页面接传值问题
Powered by:
BlogJava
Copyright © 鱼跃于渊