var u=60, I="";
var gInputQuery = null, gBtnSearch = null;
var gInputQueryFocused = false, gInputQueryBlured = false, gInputQueryValue = null, gInputQueryKeycode = "";var gKeyword = "", gKeywordPre = "", gKeywordToDisplayCompStrings = "";
var gCompDiv = null, gCompIFrame = null;
var gCompDivBorderLeftWidth = 1, gCompDivBorderTopWidth = 1;
var gCompleteStrings = {};var gNotResponsedResquestNum = 0;
var gTimerHideCompDiv = null;
var gDivTagName = "div";
var gSpanTagName = "span";var gCompStringDivNum = 5;
var gCompStringDivNumber = -1;
var gCompStringDivs = null;
var gSelectedCompStringDiv = null, gSelectedCompStringDivIndex = -1;var gSelectionValue = null, gSelectionStart = null, gSelectionLength = null;
var gMousePositionX = -1, gMousePositionY = -1;var gDocumentKeycode = -1;var gSubmitting = false;
var gTimeFactor = 1;function JSONscriptRequest(fullUrl) {
this.fullUrl = fullUrl;
this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
this.headLoc = document.getElementsByTagName("head").item(0);
this.scriptId = 'JscriptId' + JSONscriptRequest.scriptCounter++;
}JSONscriptRequest.scriptCounter = 1;
JSONscriptRequest.prototype.buildScriptTag = function ()
{
var CharSet = "&cs=utf-8";
this.scriptObj = document.createElement("script");
this.scriptObj.setAttribute("type", "text/javascript");
this.scriptObj.setAttribute("src", this.fullUrl + CharSet);
}
JSONscriptRequest.prototype.removeScriptTag = function () {
this.headLoc.removeChild(this.scriptObj);
}
JSONscriptRequest.prototype.addScriptTag = function () {
this.headLoc.appendChild(this.scriptObj);
}function addCompleteStrings(keyword, completeStrings, displayStrings)
{
gCompleteStrings[keyword] = new Array(completeStrings, displayStrings);
}setupAC = function(inputQuery, btnSearch)
{
gInputQuery = inputQuery;
gBtnSearch = btnSearch;
if(gInputQuery) {
initAC();
}
};function initAC()
{
gInputQuery.autocomplete = "off";
gInputQuery.onblur = inputQueryOnblur;
gInputQuery.onfocus = inputQueryOnfocus;
if (gInputQuery.createTextRange)
gInputQuery.onkeyup = new Function("return inputQueryOnkeyup(event); ");
else
gInputQuery.onkeyup = inputQueryOnkeyup;
gInputQuery.onsubmit = inputQueryOnsubmit;
gKeyword = gInputQuery.value;
gKeywordPre = gKeyword;
gCompDiv = document.createElement("DIV");
gCompDiv.id = "completeDiv";
gCompDivBorderLeftWidth = 1;
gCompDivBorderTopWidth = 1;
gCompDiv.style.borderRight = "black " + gCompDivBorderLeftWidth + "px solid";
gCompDiv.style.borderLeft = "black " + gCompDivBorderLeftWidth + "px solid";
gCompDiv.style.borderTop = "black " + gCompDivBorderTopWidth + "px solid";
gCompDiv.style.borderBottom = "black " + gCompDivBorderTopWidth + "px solid";
gCompDiv.style.zIndex = "2";
gCompDiv.style.paddingRight = "0";
gCompDiv.style.paddingLeft = "0";
gCompDiv.style.paddingTop = "0";
gCompDiv.style.paddingBottom = "0";
gCompDiv.style.visibility = "hidden";
gCompDiv.style.position = "absolute";
gCompDiv.style.backgroundColor = "white";
gCompIFrame = document.createElement("IFRAME");
gCompIFrame.id = "completeIFrame";
gCompIFrame.style.zIndex = "1";
gCompIFrame.style.position = "absolute";
gCompIFrame.style.display = "block";
gCompIFrame.style.visibility = "hidden";
gCompIFrame.style.borderRightWidth = "0";
gCompIFrame.style.borderLeftWidth = "0";
gCompIFrame.style.borderTopWidth = "0";
gCompIFrame.style.borderBottomWidth = "0";
setCompDivPosition();
document.body.appendChild(gCompDiv);
document.body.appendChild(gCompIFrame); addCompleteStrings("", [], []); ua();
setStyle(gCompDiv, "mAutoComplete")
window.onresize = windowOnresize;
//document.onkeydown = documentOnkeydown;
document.onkeyPress = documentOnkeydown;
gb();
setTimeout("inputQueryValueChange()", 10*gTimeFactor);
}function inputQueryTemporaryBlur()
{
gInputQueryBlured = true;
gInputQuery.blur();
setTimeout("inputQueryFocus();", 10*gTimeFactor)
}function gb()
{
if (document.createEventObject)
{
var a = document.createEventObject();
a.ctrlKey = true;
a.keyCode = 70;
document.fireEvent("onkeypress", a)
}
}function documentOnkeydown(keydownEvent)
{
if (!keydownEvent && window.event)
keydownEvent = window.event;
if (keydownEvent)
gDocumentKeycode = keydownEvent.keyCode;
if (keydownEvent && keydownEvent.keyCode == 8)
{
//
}
}function windowOnresize()
{
setCompDivPosition()
}function setCompDivPosition()
{
if (gCompDiv)
{
gCompDiv.style.left = absoluteLocation(gInputQuery, "offsetLeft") - 2 + "px";
gCompDiv.style.top = absoluteLocation(gInputQuery, "offsetTop") + gInputQuery.offsetHeight + 4 +"px";
gCompDiv.style.width = adjustOffsetWidth() + "px";
if (gCompIFrame)
{
gCompIFrame.style.left = gCompDiv.style.left;
gCompIFrame.style.top = gCompDiv.style.top;
gCompIFrame.style.width = gCompDiv.style.width;
gCompIFrame.style.height = gCompDiv.style.height
}
}
}function adjustOffsetWidth()
{
/*if (navigator && navigator.userAgent.toLowerCase().indexOf("msie") == - 1)
{*/
return gInputQuery.offsetWidth + 6
/*}
else
{
return gInputQuery.offsetWidth
}*/
}
function inputQueryOnfocus(a)
{
gInputQueryFocused = true
}function inputQueryOnblur(blurEvent)
{
//window.status=new Date()
//alert()
gInputQueryFocused = false;
if (!blurEvent && window.event)
{
blurEvent = window.event;
}
if (!gInputQueryBlured)
{
hideCompleteDiv();
if (gDocumentKeycode == 9)
{
gBtnSearch.focus();
gDocumentKeycode = -1;
}
}
gInputQueryBlured = false;
}inputQueryOnkeyup = function(keyEvent)
{
gInputQueryKeycode = keyEvent.keyCode;
gInputQueryValue = gInputQuery.value;
processUserInput()
};
inputQueryFocus = function()
{
gInputQuery.focus()
};
function trimStr(str)
{
for (var i = 0, trimedStr = "", crlf = "\n\r"; i < str.length; i++)
if (crlf.indexOf(str.charAt(i)) == - 1)
trimedStr += str.charAt(i);
else
trimedStr += " ";
return trimedStr
}function separateCompStringDiv(compStringDiv, styleClassName)
{
var compStringSpan = compStringDiv.getElementsByTagName(gSpanTagName);
if (compStringSpan)
{
for (var i = 0; i < compStringSpan.length; ++i)
{
if (compStringSpan[i].className == styleClassName)
{
var f = compStringSpan[i].innerHTML;
if (f == " ")
return "";
else
{
var str = trimStr(f);
return str
}
}
}
}
else
{
return ""
}
}function separateCompStringDivC(compStringDiv)
{
if (!compStringDiv)
return null;
return separateCompStringDiv(compStringDiv, "cAutoComplete")
}function separateCompStringDivD(compStringDiv)
{
if (!compStringDiv)
return null;
return separateCompStringDiv(compStringDiv, "dAutoComplete")
}function hideCompleteDiv()
{
document.getElementById("completeDiv").style.visibility = "hidden";
document.getElementById("completeIFrame").style.visibility = "hidden"
}
接下贴:
var gInputQuery = null, gBtnSearch = null;
var gInputQueryFocused = false, gInputQueryBlured = false, gInputQueryValue = null, gInputQueryKeycode = "";var gKeyword = "", gKeywordPre = "", gKeywordToDisplayCompStrings = "";
var gCompDiv = null, gCompIFrame = null;
var gCompDivBorderLeftWidth = 1, gCompDivBorderTopWidth = 1;
var gCompleteStrings = {};var gNotResponsedResquestNum = 0;
var gTimerHideCompDiv = null;
var gDivTagName = "div";
var gSpanTagName = "span";var gCompStringDivNum = 5;
var gCompStringDivNumber = -1;
var gCompStringDivs = null;
var gSelectedCompStringDiv = null, gSelectedCompStringDivIndex = -1;var gSelectionValue = null, gSelectionStart = null, gSelectionLength = null;
var gMousePositionX = -1, gMousePositionY = -1;var gDocumentKeycode = -1;var gSubmitting = false;
var gTimeFactor = 1;function JSONscriptRequest(fullUrl) {
this.fullUrl = fullUrl;
this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
this.headLoc = document.getElementsByTagName("head").item(0);
this.scriptId = 'JscriptId' + JSONscriptRequest.scriptCounter++;
}JSONscriptRequest.scriptCounter = 1;
JSONscriptRequest.prototype.buildScriptTag = function ()
{
var CharSet = "&cs=utf-8";
this.scriptObj = document.createElement("script");
this.scriptObj.setAttribute("type", "text/javascript");
this.scriptObj.setAttribute("src", this.fullUrl + CharSet);
}
JSONscriptRequest.prototype.removeScriptTag = function () {
this.headLoc.removeChild(this.scriptObj);
}
JSONscriptRequest.prototype.addScriptTag = function () {
this.headLoc.appendChild(this.scriptObj);
}function addCompleteStrings(keyword, completeStrings, displayStrings)
{
gCompleteStrings[keyword] = new Array(completeStrings, displayStrings);
}setupAC = function(inputQuery, btnSearch)
{
gInputQuery = inputQuery;
gBtnSearch = btnSearch;
if(gInputQuery) {
initAC();
}
};function initAC()
{
gInputQuery.autocomplete = "off";
gInputQuery.onblur = inputQueryOnblur;
gInputQuery.onfocus = inputQueryOnfocus;
if (gInputQuery.createTextRange)
gInputQuery.onkeyup = new Function("return inputQueryOnkeyup(event); ");
else
gInputQuery.onkeyup = inputQueryOnkeyup;
gInputQuery.onsubmit = inputQueryOnsubmit;
gKeyword = gInputQuery.value;
gKeywordPre = gKeyword;
gCompDiv = document.createElement("DIV");
gCompDiv.id = "completeDiv";
gCompDivBorderLeftWidth = 1;
gCompDivBorderTopWidth = 1;
gCompDiv.style.borderRight = "black " + gCompDivBorderLeftWidth + "px solid";
gCompDiv.style.borderLeft = "black " + gCompDivBorderLeftWidth + "px solid";
gCompDiv.style.borderTop = "black " + gCompDivBorderTopWidth + "px solid";
gCompDiv.style.borderBottom = "black " + gCompDivBorderTopWidth + "px solid";
gCompDiv.style.zIndex = "2";
gCompDiv.style.paddingRight = "0";
gCompDiv.style.paddingLeft = "0";
gCompDiv.style.paddingTop = "0";
gCompDiv.style.paddingBottom = "0";
gCompDiv.style.visibility = "hidden";
gCompDiv.style.position = "absolute";
gCompDiv.style.backgroundColor = "white";
gCompIFrame = document.createElement("IFRAME");
gCompIFrame.id = "completeIFrame";
gCompIFrame.style.zIndex = "1";
gCompIFrame.style.position = "absolute";
gCompIFrame.style.display = "block";
gCompIFrame.style.visibility = "hidden";
gCompIFrame.style.borderRightWidth = "0";
gCompIFrame.style.borderLeftWidth = "0";
gCompIFrame.style.borderTopWidth = "0";
gCompIFrame.style.borderBottomWidth = "0";
setCompDivPosition();
document.body.appendChild(gCompDiv);
document.body.appendChild(gCompIFrame); addCompleteStrings("", [], []); ua();
setStyle(gCompDiv, "mAutoComplete")
window.onresize = windowOnresize;
//document.onkeydown = documentOnkeydown;
document.onkeyPress = documentOnkeydown;
gb();
setTimeout("inputQueryValueChange()", 10*gTimeFactor);
}function inputQueryTemporaryBlur()
{
gInputQueryBlured = true;
gInputQuery.blur();
setTimeout("inputQueryFocus();", 10*gTimeFactor)
}function gb()
{
if (document.createEventObject)
{
var a = document.createEventObject();
a.ctrlKey = true;
a.keyCode = 70;
document.fireEvent("onkeypress", a)
}
}function documentOnkeydown(keydownEvent)
{
if (!keydownEvent && window.event)
keydownEvent = window.event;
if (keydownEvent)
gDocumentKeycode = keydownEvent.keyCode;
if (keydownEvent && keydownEvent.keyCode == 8)
{
//
}
}function windowOnresize()
{
setCompDivPosition()
}function setCompDivPosition()
{
if (gCompDiv)
{
gCompDiv.style.left = absoluteLocation(gInputQuery, "offsetLeft") - 2 + "px";
gCompDiv.style.top = absoluteLocation(gInputQuery, "offsetTop") + gInputQuery.offsetHeight + 4 +"px";
gCompDiv.style.width = adjustOffsetWidth() + "px";
if (gCompIFrame)
{
gCompIFrame.style.left = gCompDiv.style.left;
gCompIFrame.style.top = gCompDiv.style.top;
gCompIFrame.style.width = gCompDiv.style.width;
gCompIFrame.style.height = gCompDiv.style.height
}
}
}function adjustOffsetWidth()
{
/*if (navigator && navigator.userAgent.toLowerCase().indexOf("msie") == - 1)
{*/
return gInputQuery.offsetWidth + 6
/*}
else
{
return gInputQuery.offsetWidth
}*/
}
function inputQueryOnfocus(a)
{
gInputQueryFocused = true
}function inputQueryOnblur(blurEvent)
{
//window.status=new Date()
//alert()
gInputQueryFocused = false;
if (!blurEvent && window.event)
{
blurEvent = window.event;
}
if (!gInputQueryBlured)
{
hideCompleteDiv();
if (gDocumentKeycode == 9)
{
gBtnSearch.focus();
gDocumentKeycode = -1;
}
}
gInputQueryBlured = false;
}inputQueryOnkeyup = function(keyEvent)
{
gInputQueryKeycode = keyEvent.keyCode;
gInputQueryValue = gInputQuery.value;
processUserInput()
};
inputQueryFocus = function()
{
gInputQuery.focus()
};
function trimStr(str)
{
for (var i = 0, trimedStr = "", crlf = "\n\r"; i < str.length; i++)
if (crlf.indexOf(str.charAt(i)) == - 1)
trimedStr += str.charAt(i);
else
trimedStr += " ";
return trimedStr
}function separateCompStringDiv(compStringDiv, styleClassName)
{
var compStringSpan = compStringDiv.getElementsByTagName(gSpanTagName);
if (compStringSpan)
{
for (var i = 0; i < compStringSpan.length; ++i)
{
if (compStringSpan[i].className == styleClassName)
{
var f = compStringSpan[i].innerHTML;
if (f == " ")
return "";
else
{
var str = trimStr(f);
return str
}
}
}
}
else
{
return ""
}
}function separateCompStringDivC(compStringDiv)
{
if (!compStringDiv)
return null;
return separateCompStringDiv(compStringDiv, "cAutoComplete")
}function separateCompStringDivD(compStringDiv)
{
if (!compStringDiv)
return null;
return separateCompStringDiv(compStringDiv, "dAutoComplete")
}function hideCompleteDiv()
{
document.getElementById("completeDiv").style.visibility = "hidden";
document.getElementById("completeIFrame").style.visibility = "hidden"
}
接下贴:
解决方案 »
- 如何用JS达到 切换已旋转图片时同时修正旋转方向
- jqgrid 传参数问题
- 关于this关键字
- javascritp 显示鼠标的当前位置 在站点中不起作用 但不在站点却起作用了
- js cookie设置,临时文件里却没有cookie!?
- javascript 保留空格(急!!!!在线等!!)
- 一个简单问题,怎么从table里把一个数取出
- 哪位高手帮忙看一下js 为什么不起作用啊?
- 能否在页面载入的时候让鼠标变成沙漏状态无法点击??
- 两个DIV,第一个div里有一个iframe,想把这个iframe移动到 第二个div里
- JS用innerHTML动态添加图片,图片onload事件无法执行
- JS做个用户名的判断
function showCompleteDiv()
{
document.getElementById("completeDiv").style.visibility = "visible";
document.getElementById("completeIFrame").style.visibility = "visible";
setCompDivPosition();
}compRequest = function()
{
if (gKeywordPre != gKeyword)
{
if (!gSubmitting)
{
var escaped_keyword = encodeAndEscape(gKeyword), completeStrings = gCompleteStrings[gKeyword];
if (completeStrings)
{
compResp( gKeyword, completeStrings[0], completeStrings[1])
}
else
{
gNotResponsedResquestNum++;
var req = 'http://ac.xunlei.com/complete?ac='+escaped_keyword; //注意:在这里生成输入框的前字
var jsonReq = new JSONscriptRequest(req);
jsonReq.buildScriptTag();
jsonReq.addScriptTag();
}
gInputQuery.focus()
}
gSubmitting = false
}
gKeywordPre = gKeyword;
setTimeout("compRequest()", calcNextTimeoutInterval(gNotResponsedResquestNum));
return true
};compResp = function( keyword, completeStrings, displayStrings)
{
if (gNotResponsedResquestNum > 0)
gNotResponsedResquestNum--; addCompleteStrings(keyword, completeStrings, displayStrings);
if (keyword == gKeyword)
{
if (gTimerHideCompDiv)
{
clearTimeout(gTimerHideCompDiv);
gTimerHideCompDiv = null;
}
gKeywordToDisplayCompStrings = keyword;
}
var completeDiv = gCompDiv;
completeDiv.completeStrings = completeStrings;
completeDiv.displayStrings = displayStrings; fillCompDiv(completeDiv, completeDiv.completeStrings, completeDiv.displayStrings);
displayCompDiv(completeDiv, separateCompStringDivC);
if (gCompStringDivNum > 0)
{
completeDiv.height = 16 * gCompStringDivNum + 4;
gCompIFrame.height = completeDiv.height - 4
}
else
{
hideCompleteDiv()
}
};
hideCompDiv = function()
{
hideCompleteDiv();
gTimerHideCompDiv = null
};function processUserInput()
{
if (gInputQueryKeycode == 40 || gInputQueryKeycode == 38)
inputQueryTemporaryBlur();
var length = selectionLength(gInputQuery), start = selectionStart(gInputQuery), inputValue = gInputQuery.value; //9=VK_TAB , 13=VK_RETURN , 16=VK_SHIFT ,17=VK_CONTROL ,18=VK_MENU(ALT),19=VK_PAUSE ,20=VK_CAPITAL
//27=VK_ESCAPE ,33=VK_PAGEUP ,34=VK_PAGEDOWN, 35=VK_END, 36=VK_HOME, 37=VK_LEFT, 38=VK_UP
//39=VK_RIGHT, 40=VK_DOWN, 44=VK_SNAPSHOT(PRINT SCREEN key), 112-123=F1-F12
if ( gInputQueryKeycode != 9
&& gInputQueryKeycode != 13
&& !(gInputQueryKeycode >= 16 && gInputQueryKeycode <= 20)
&& gInputQueryKeycode != 27
&& !(gInputQueryKeycode >= 33 && gInputQueryKeycode<= 38)
&& gInputQueryKeycode != 40 && gInputQueryKeycode != 44
&& !(gInputQueryKeycode >= 112 && gInputQueryKeycode <= 123))
{
gKeyword = inputValue;
if (gInputQueryKeycode != 39)//39=VK_RIGHT
{
ia = inputValue
}
} if (notCompStringDivsNavigation(gInputQueryKeycode)
&& gInputQueryKeycode != 0
&& gKeywordToDisplayCompStrings == gKeyword)
{
displayCompDiv(gCompDiv, separateCompStringDivC);
}
if (gKeywordToDisplayCompStrings != gKeyword && !gTimerHideCompDiv)
{
gTimerHideCompDiv = setTimeout("hideCompDiv()", 500*gTimeFactor)
}
}function inputQueryOnsubmit()
{
gSubmitting = true;
hideCompleteDiv();
check();
return true
}inputQueryValueChange = function(a)
{
if (gInputQueryFocused)
{
getSelectionInfo()
}
var curValue = gInputQuery.value;
if (curValue != gInputQueryValue)
{
gInputQueryKeycode = 0;
processUserInput()
}
gInputQueryValue = curValue;
setTimeout("inputQueryValueChange()", 10*gTimeFactor)
};function encodeAndEscape(a)
{
if (encodeURIComponent)
return encodeURIComponent(a);
if (escape)
return escape(a)
}function calcNextTimeoutInterval(notResponsedResquestNum)
{
//return 20*gTimeFactor;
var interval = 100*gTimeFactor;
for (var i = 1; i <= (notResponsedResquestNum - 2) / 2; i++)
{
interval = interval * 2
}
interval = interval + 50*gTimeFactor;
return interval
}setTimeout("compRequest()", 10*gTimeFactor);var compStringDivOnmousedown = function()
{
setInputQueryValue(separateCompStringDivC(this));
//inputQueryOnsubmit()
gSubmitting=true;
hideCompleteDiv();
//getSearchUrl();
document.getElementById("btnSearch").focus();
}var compStringDivOnmousemove = function()
{
if (window.event)
{
var x = window.event.x, y = window.event.y;
if (x == gMousePositionX && y == gMousePositionY)
{
return
}
gMousePositionX = x;
gMousePositionY = y
}
if (gSelectedCompStringDiv)
setStyle(gSelectedCompStringDiv, "aAutoComplete");
setStyle(this, "bAutoComplete");
gSelectedCompStringDiv = this;
for (var i = 0; i < gCompStringDivNumber; i++)
{
if (gCompStringDivs[i] == gSelectedCompStringDiv)
{
gSelectedCompStringDivIndex = i;
break
}
}
}var compStringDivOnmouseout = function()
{
setStyle(this, "aAutoComplete")
};function hilightCompStringDiv(compStringDivIndex)
{
gKeyword = I;
setInputQueryValue(I); if (!gCompStringDivs || gCompStringDivNumber <= 0)
return ;
showCompleteDiv();
if (compStringDivIndex >= gCompStringDivNumber)
{
compStringDivIndex = gCompStringDivNumber - 1
}
if (gSelectedCompStringDivIndex != - 1 && compStringDivIndex != gSelectedCompStringDivIndex)
{
setStyle(gSelectedCompStringDiv, "aAutoComplete");
gSelectedCompStringDivIndex = - 1
}
if (compStringDivIndex < 0)
{
gSelectedCompStringDivIndex = - 1;
gInputQuery.focus();
return
}
gSelectedCompStringDivIndex = compStringDivIndex;
gSelectedCompStringDiv = gCompStringDivs.item(compStringDivIndex);
setStyle(gSelectedCompStringDiv, "bAutoComplete");
gKeyword = I; setInputQueryValue(separateCompStringDivC(gSelectedCompStringDiv))
}function notCompStringDivsNavigation(keycode)
{
if (keycode == 40) //VK_DOWN
{
hilightCompStringDiv(gSelectedCompStringDivIndex + 1);
return false
}
else if (keycode == 38) //VK_UP
{
hilightCompStringDiv(gSelectedCompStringDivIndex - 1);
return false
}
else if (keycode == 13 || keycode == 3)
{
if(window.navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)
inputQueryOnsubmit();
return false
}
return true
}function displayCompDiv(completeDiv, separateCompString)
{
var c = gInputQuery, hasStringToSelect = false;
gSelectedCompStringDivIndex = - 1;
var compStringDivs = completeDiv.getElementsByTagName(gDivTagName), compStringDivNum = compStringDivs.length;
gCompStringDivNumber = compStringDivNum;
gCompStringDivs = compStringDivs;
gCompStringDivNum = compStringDivNum;
I = gKeyword;
if (gKeyword == "" || compStringDivNum == 0)
{
hideCompleteDiv()
}
else
{
showCompleteDiv()
} for (var i = 0; i < compStringDivNum; i++)
{
setStyle(compStringDivs.item(i), "aAutoComplete");
}
gSelectedCompStringDivIndex = - 1;
gSelectedCompStringDiv = null}
//再接下贴:
function absoluteLocation(element, offset)
{
var c = 0;
while (element)
{
c += element[offset];
element = element.offsetParent
}
return c
}function selectionLength(inputQuery)
{
var length = - 1;
if (inputQuery.createTextRange)
{
var textRange = document.selection.createRange().duplicate();
length = textRange.text.length
}
else if (inputQuery.setSelectionRange)
{
length = inputQuery.selectionEnd - inputQuery.selectionStart
}
return length
}function selectionStart(inputQuery)
{
var start = 0;
if (inputQuery.createTextRange)//IE
{
var textRange = document.selection.createRange().duplicate();
textRange.moveEnd("textedit", 1);
start = inputQuery.value.length - textRange.text.length
}
else if (inputQuery.setSelectionRange)//Firefox
{
start = inputQuery.selectionStart
}
else
{
start = - 1
}
return start
}function selectionEnd(inputQuery)
{
if (inputQuery.createTextRange)//IE
{
var textRange = inputQuery.createTextRange();
textRange.moveStart("character", inputQuery.value.length);
textRange.select()
}
else if (inputQuery.setSelectionRange)//Friefox
{
inputQuery.setSelectionRange(inputQuery.value.length, inputQuery.value.length)
}
}function setStyle(element, styleClassName)
{
ua();
element.className = styleClassName; switch (styleClassName.charAt(0))
{
case "m":
element.style.fontSize = "13px";
element.style.fontFamily = "arial,sans-serif";
element.style.wordWrap = "break-word";
break;
case "l":
element.style.display = "block";
element.style.paddingLeft = "3";
element.style.paddingRight = "3";
element.style.height = "16px";
element.style.overflow = "hidden";
break;
case "a":
element.style.backgroundColor = "white";
element.style.color = "black";
if (element.displaySpan)
{
element.displaySpan.style.color = "green"
}
break;
case "b":
element.style.backgroundColor = "#3366cc";
element.style.color = "white";
if (element.displaySpan)
{
element.displaySpan.style.color = "white"
}
break;
case "c":
element.style.width = u + "%";
if(window.navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)
element.style.cssFloat = "left";
else
element.style.styleFloat = "left";
element.style.whiteSpace = "nowrap";
element.style.overflow = "hidden";
element.style.textOverflow = "ellipsis";
element.style.fontSize = "12px";
break;
case "d":
if(window.navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)
element.style.cssFloat = "right";
else
element.style.styleFloat = "right";
element.style.width = 100-u + "%"; element.style.fontSize = "10px";
element.style.textAlign = "right";
element.style.color = "green";
element.style.paddingTop = "3px" break
}
}function ua()
{
u = 65; var a = 110, b = adjustOffsetWidth(), c = (b - a) / b * 100;
u = c}function fillCompDiv(completeDiv, completeStrings, displayStrings)
{
while (completeDiv.childNodes.length > 0)
completeDiv.removeChild(completeDiv.childNodes[0]);
for (var e = 0; e < completeStrings.length; ++e)
{
var f = document.createElement("DIV");
setStyle(f, "aAutoComplete");
f.onmousedown = compStringDivOnmousedown;
f.onmousemove = compStringDivOnmousemove;
f.onmouseout = compStringDivOnmouseout;
var i = document.createElement("SPAN");
setStyle(i, "lAutoComplete"); i.style.height = gInputQuery.offsetHeight ;
var h = document.createElement("SPAN");
h.innerHTML = completeStrings[e];
var l = document.createElement("SPAN");
setStyle(l, "dAutoComplete");
setStyle(h, "cAutoComplete");
f.displaySpan = l;
l.innerHTML = displayStrings[e];
i.appendChild(h);
i.appendChild(l);
f.appendChild(i);
completeDiv.appendChild(f)
}
}
function setInputQueryValue(value)
{
gInputQuery.value = value;
gInputQueryValue = value;
}
function selectionNotChanged()
{
var value= gInputQuery.value, start = selectionStart(gInputQuery), length = selectionLength(gInputQuery);
return length == gSelectionStart && c == gSelectionLength && value == gSelectionValue
}function getSelectionInfo()
{
gSelectionValue = gInputQuery.value;
gSelectionStart = selectionStart(gInputQuery);
gSelectionLength = selectionLength(gInputQuery)
}
请问如何修改这里的连接,然后做成自己在下拉框所先的内容呢?
例如:在地址中输入http://ac.xunlei.com/complete?ac=李结果显示:compResp("李", new Array("李连杰", "李孝利", "李贞贤", "李算", "李小龙传奇", "李丽珍", "李宇春", "李连杰电影全集", "李宇春和你一样", "李宇春 和你一样"), new Array("24385 结果", "43515 结果", "23951 结果", "6391 结果", "1264 结果", "7975 结果", "33803 结果", "271 结果", "737 结果", "737 结果"));我想实现将http://ac.xunlei.com/complete?ac=李 改成自己的软件地址:如searchproduct.asp?ac=电
然后通过数据库查询,将产品名为“电”开头的产品调出,生成:
compResp("电", new Array("电视机", "电脑", "电台"), new Array("24385 结果", "43515 结果", "23951 结果"));
请问我该如何调用这个,然后将这内容在下拉框中显示呢?
如果你不明白,你可以将上面第一贴做成“search.htm”,将后三贴做成“input-ac4www.js”,要将input-ac4www.js放到JS文件夹下,运行search.htm,然后输入一个字就明白了。
js/input-ac4www.js这里的代码是调用了http://ac.xunlei.com/complete的数据,而我想做调用自己的。
然后通过数据库查询,将产品名为“电”开头的产品调出,生成:
compResp("电", new Array("电视机", "电脑", "电台"), new Array("24385 结果", "43515 结果", "23951 结果"));
请问我该如何调用这个compResp,然后将这内容在下拉框中显示呢?
可否这样:
将http://ac.xunlei.com/complete改为searchproduct.asp?ac=电
然后通过FSO生成一个search_result.js,内容如下:
compResp("电", new Array("电视机", "电脑", "电台"), new Array("24385 结果", "43515 结果", "23951 结果")); 在search.htm中插入一个<SCRIPT src="js/search_result.js" type=text/javascript> </SCRIPT>,这样可以吗?那该如何调用compResp呢?
这么长的代码实现这个功能有点不值得
狗狗只要调用 安装 本来有两个参数的 我改成一个了 他做了很粗糙 但是很好懂。对应input
setupAC(document.getElementById("Form").name);
其他会有一些错误,比如跳出div位置是一定的,代码有改变的方法,但代码不起作用,需要手改一下。
还有很奇怪 我下的js有注解的 那一部分有写css 但注解掉那些 css也不知道哪里来的 什么s_list s_keywode 再一看代码 直接写在上面的 css 。
就这些