//suggest.js -------------------------------------- var browserType=0; var xmlHttp; var xmlDoc; function createXMLHttpRequest() { if(window.ActiveXObject) { browserType=1; xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } }
function suggest(e) { var key=e.value; var keyword= document.getElementById("tbSearch").value;//获取查询条件 selectObject = e;
if(key) {
var patrn=/^[^ <,>,?,",:,;]*$/; //验证输入的内容是否合法 if (!patrn.exec(key)) { alert("不能输入非法字符!") ; e.value="";//清空输入的内容 return; } createXMLHttpRequest(); //search.ashx处理页面 返回XML var url= "search.ashx?keyword="+encodeURIComponent(keyword)+"&rnd="+Math.random(); xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange=showResult; xmlHttp.send(null); } }
function showResult() { if(xmlHttp.readyState==4) { if(xmlHttp.status==200) { xmlDoc = xmlHttp.responseXML; suggestShow(selectObject); } } } //显示信息 function suggestShow(e) {
var moneyMsg = document.getElementById("suggest"); var opn = " <ul class='suggestul'>"; var records = xmlDoc.getElementsByTagName("record").length; if(records>0) { for ( i = 0; i < records; i++) { opn += " <li class='suggestulli' onmouseover='this.style.backgroundColor=\"#c7dffa\";' onmouseout='this.style.backgroundColor=\"#FFFFFF\";' onclick='selectSuggest(this);'> <span>"; opn += xmlDoc.getElementsByTagName("word")[i].firstChild.data; opn += " </span> <span class='suggestSpan'>" + xmlDoc.getElementsByTagName("wordSpell")[i].firstChild.data + " </span> </li>"; } opn += " <li class='suggestulli' onclick='suggestHidden();'> <span> Desgin By Feiin </span> <span class='suggestSpan'>关闭 </span> </li> </ul> <div style='clear:both;'> </div>";
moneyMsg.innerHTML = opn;
var obj=document.getElementById("tbSearch"); if (browserType==1) {
var x = e.getBoundingClientRect().top; var y = e.getBoundingClientRect().left; document.getElementById("suggest").style.top= x+20+document.body.scrollTop+"px"; document.getElementById("suggest").style.left=y+document.body.scrollLeft+"px"; } else { var menu_leve2_content = findPos(e); document.getElementById("suggest").style.top=menu_leve2_content[1]+18+"px"; document.getElementById("suggest").style.left=menu_leve2_content[0]+"px"; } document.getElementById("suggest").style.display = "block"; //显示信息 } else { document.getElementById("suggest").style.display = "none";//显示信息 } }
function suggestHidden() { document.getElementById("suggest").style.display = "none"; //隐藏信息 }
function selectSuggest(obj) { var selectObj; if(browserType==1) { selectObj=obj.getElementsByTagName("span")[0].innerText;
--------------------------------------
var browserType=0;
var xmlHttp;
var xmlDoc;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
browserType=1;
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function suggest(e)
{
var key=e.value;
var keyword= document.getElementById("tbSearch").value;//获取查询条件
selectObject = e;
if(key)
{
var patrn=/^[^ <,>,?,",:,;]*$/; //验证输入的内容是否合法
if (!patrn.exec(key))
{
alert("不能输入非法字符!") ;
e.value="";//清空输入的内容
return;
}
createXMLHttpRequest();
//search.ashx处理页面 返回XML
var url= "search.ashx?keyword="+encodeURIComponent(keyword)+"&rnd="+Math.random();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=showResult;
xmlHttp.send(null);
}
}
function showResult()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
xmlDoc = xmlHttp.responseXML;
suggestShow(selectObject);
}
}
}
//显示信息
function suggestShow(e)
{
var moneyMsg = document.getElementById("suggest");
var opn = " <ul class='suggestul'>";
var records = xmlDoc.getElementsByTagName("record").length;
if(records>0)
{
for ( i = 0; i < records; i++)
{
opn += " <li class='suggestulli' onmouseover='this.style.backgroundColor=\"#c7dffa\";' onmouseout='this.style.backgroundColor=\"#FFFFFF\";' onclick='selectSuggest(this);'> <span>";
opn += xmlDoc.getElementsByTagName("word")[i].firstChild.data;
opn += " </span> <span class='suggestSpan'>" + xmlDoc.getElementsByTagName("wordSpell")[i].firstChild.data + " </span> </li>";
}
opn += " <li class='suggestulli' onclick='suggestHidden();'> <span> Desgin By Feiin </span> <span class='suggestSpan'>关闭 </span> </li> </ul> <div style='clear:both;'> </div>";
moneyMsg.innerHTML = opn;
var obj=document.getElementById("tbSearch");
if (browserType==1)
{
var x = e.getBoundingClientRect().top;
var y = e.getBoundingClientRect().left;
document.getElementById("suggest").style.top= x+20+document.body.scrollTop+"px";
document.getElementById("suggest").style.left=y+document.body.scrollLeft+"px";
}
else
{ var menu_leve2_content = findPos(e);
document.getElementById("suggest").style.top=menu_leve2_content[1]+18+"px";
document.getElementById("suggest").style.left=menu_leve2_content[0]+"px";
}
document.getElementById("suggest").style.display = "block"; //显示信息
}
else
{
document.getElementById("suggest").style.display = "none";//显示信息
}
}
function suggestHidden()
{
document.getElementById("suggest").style.display = "none"; //隐藏信息
}
function selectSuggest(obj)
{
var selectObj;
if(browserType==1)
{
selectObj=obj.getElementsByTagName("span")[0].innerText;
}
else
{
selectObj=obj.getElementsByTagName("span")[0].textContent;
}
document.getElementById("tbSearch").value=selectObj;//tbSearch搜索栏TextBox
suggestHidden();
}function findPos(obj)
{
var curleft = curtop = 0;
if (obj.offsetParent)
{
curleft = obj.offsetLeft
curtop = obj.offsetTop
while (obj = obj.offsetParent)
{
curleft += obj.offsetLeft
curtop += obj.offsetTop
}
}
return [curleft,curtop];
}
http://topic.csdn.net/u/20080628/16/3868feb2-99c6-44cf-bba6-6832e2e4d730.html