📄 select.js
字号:
selectObjs = false;
curSelectObj = null;
window.onresize = TryAdjustSelect;
setTimeout("SetOnFocusToHideSelect();",500);
function SetOnFocusToHideSelect()
{
if(document.body == null) return;
var obj;
var i;
if (document.all){
document.body.onfocus = TryHideSelect;
obj = document.all.tags("TABLE");
for (i=0;i<obj.length;i++){
obj.item(i).onfocus = TryHideSelect;
}
obj = document.all.tags("TD");
for (i=0;i<obj.length;i++){
obj.item(i).onfocus = TryHideSelect;
}
obj = document.all.tags("A");
for (i=0;i<obj.length;i++){
obj.item(i).onfocus = TryHideSelect;
}
}
}
function RegisterSelect(selobj)
{
if (!selectObjs)
selectObjs = new Array();
selectObjs[selectObjs.length] = selobj;
}
function TryAdjustSelect()
{
if (selectObjs){
for (i=0;i<selectObjs.length;i++)
if (selectObjs[i].visible){
CalcSelectPosition(selectObjs[i]);
}
}
}
function TSelectObject(formVarH,formVarV,idOn,idOff,selectedIndex,nItems,arrSource,strFuncName,selTable)
{
this.formVarH = formVarH;
this.formVarV = formVarV;
this.idOn = idOn;
this.idOff = idOff;
this.selectedIndex = selectedIndex;
this.visible = false;
this.nItems = nItems;
this.arrSource = arrSource;
this.strFuncName = strFuncName;
this.disabled = false;
this.selTable = selTable;
return this;
}
function ToggleSelect(selobj)
{
if (selobj.disabled) return;
if (selobj.visible)
HideSelect(selobj);
else
ShowSelect(selobj);
return;
}
function HighlightOption(selobj,i)
{
NormalOption(selobj,selobj.selectedIndex);
var obj = document.all[selobj.idOn+"_"+i];
if(obj == null) return;
obj.style.backgroundColor = "#113399";
obj.style.color = "#ffffff";
}
function NormalOption(selobj,i)
{
var obj = document.all[selobj.idOn+"_"+i];
if(obj == null) return;
obj.style.backgroundColor = "#f0f0f0";
obj.style.color = "#000";
}
function OptionClicked(selobj,idx,val)
{
var obj = document.all[selobj.idOn+"_"+idx];
var vstr = obj.innerText;
vstr = vstr.replace(/^( )+/,"");
var formObj=null;
formObj = FindFormByVarName(selobj.formVarH);
if (formObj!=null){
eval("formObj."+selobj.formVarV+".value = vstr;");
eval("formObj."+selobj.formVarH+".value = val;");
}
else{
document.all[selobj.formVarH].value = val;
document.all[selobj.formVarV].value = vstr;
}
selobj.selectedIndex = idx;
HideSelect(selobj);
}
function CalcSelectPosition(selobj)
{
if (document.all){
var obj = document.all[selobj.idOff];
var left = 0;
var top = 0;
for (; obj!=document.body; obj=obj.offsetParent){
if(obj.tagName=="DIV"){
// alert(obj.name);
}
if(obj.tagName!="DIV"){
left += obj.offsetLeft;
top += obj.offsetTop;
}
}
obj = document.all[selobj.idOn].style;
obj.pixelLeft = left;
obj.pixelTop = top+document.all[selobj.idOff].offsetHeight+1;
obj.pixelWidth = document.all[selobj.idOff].offsetWidth;
if (selobj.nItems<=10){
obj.pixelHeight = selobj.nItems*16+2;
obj.overflow = "visible";
}
else{
obj.pixelHeight = 10*16+2;
obj.overflow = "auto";
}
}
}
function PreShowSelect(selobj)
{
obj = document.all[selobj.idOn].style;
obj.overflow = "hidden";
}
function ShowSelect(selobj)
{
if (document.all){
if (curSelectObj!=null)
HideSelect(curSelectObj);
selobj.visible = true;
document.all[selobj.idOn].style.visibility="visible";
CalcSelectPosition(selobj);
HighlightOption(selobj,selobj.selectedIndex);
curSelectObj = selobj;
}
}
function HideSelect(selobj)
{
if (document.all){
obj = document.all[selobj.idOn].style;
obj.visibility="hidden";
selobj.visible = false;
curSelectObj = null;
}
}
function DelayHideSelect(objname)
{
setTimeout("HideSelect("+objname+");",200);
}
function TryHideSelect()
{
if (curSelectObj!=null)
HideSelect(curSelectObj);
}
function FindFormByVarName(vname)
{
for (i=0;i<document.forms.length;i++){
if (document.forms[i].all[vname]!=null)
return document.forms[i];
}
return null;
}
function CreateSelect(strName,strTitle,arrSource,intChecked,strFuncName,intSize)
{
var defValue,defName;
if(arrSource.length == 0){
defValue = "";
defName = "";
}
else
{
defValue = arrSource[intChecked][0];
defName = arrSource[intChecked][1];
}
if(strFuncName == null){
strFuncName = "";
}
if(String(strFuncName).indexOf("(") == -1 && strFuncName != "")
strFuncName = strFuncName + "()";
if(strFuncName != ""){
strFuncName = strFuncName + ";";
}
var selTable;
selTable = "seltable_" + strName;
document.write("<TABLE cellSpacing=0 cellPadding=0 border=0 id = " + selTable + "><TBODY>");
document.write("<TR>");
if(strTitle != "")
document.write("<TD class=ttTable noWrap>" + strTitle + "</TD>");
document.write("<TD noWrap>");
var seloff,selvarV,selon,selobj,selName;
seloff = "seloff_" + strName;
selvarV = "selvarV_" + strName;
selon = "selon_" + strName;
selobj = "selobj_" + strName;
selName = strName;
document.write("<DIV class=selectOff id=" + seloff + " onclick=ToggleSelect(" + selobj + ");>");
document.write("<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>");
document.write("<TR><TD>");
if(intSize == null){
document.write("<INPUT class=ednonedisable style=\"cursor: pointer\" readonly value=\"" + defName + "\" name=" + selvarV + "></TD>");
}
else{
document.write("<INPUT class=ednonedisable style=\"cursor: pointer\" readonly size= " + intSize + " value=\"" + defName + "\" name=" + selvarV + "></TD>");
}
document.write("<TD width=\"1%\"><IMG style=\"cursor: pointer\" src=\"images/arrow_down.gif\" border=0></TD>");
document.write("</TR></TBODY></TABLE>");
document.write("</DIV>");
document.write("<DIV class=selectOn id=" + selon + " onblur=\"DelayHideSelect('" + selobj + "');\">");
var i;
for(i=0;i<arrSource.length;i++){
document.write("<DIV class=selectItem id=" + selon + "_" + i + " onmouseover=HighlightOption(" + selobj + "," + i + "); onclick=\"OptionClicked(" + selobj + "," + i + ",'" + arrSource[i][0] + "');" + strFuncName + "\" onmouseout=NormalOption(" + selobj + "," + i + ");>" + arrSource[i][1] + "</DIV>");
}
document.write("</DIV>");
document.write("<INPUT type=hidden value=\"" + defValue + "\" name=" + selName + ">");
document.write("</TD>");
document.write("</TR>");
document.write("</TBODY></TABLE>");
eval(selobj + "= new TSelectObject('" + selName + "','" + selvarV + "','" + selon + "','" + seloff + "',intChecked,arrSource.length,arrSource,strFuncName,selTable);");
eval("RegisterSelect(" + selobj + ");");
return selobj;
}
function getValue(selobj,intShow)
{
var strValue;
var varV,varH;
eval("varV = " + selobj + ".formVarV;");
eval("varH = " + selobj + ".formVarH;");
if(intShow == 1){
strValue = document.all(varV).value;
}
else{
strValue = document.all(varH).value;
}
return strValue;
}
function setValue(selobj,strValue,intShow)
{
var arrSource;
eval("arrSource = " + selobj + ".arrSource;");
if(arrSource.length == 0) return;
var i;
if(intShow == 1){
for(i=0;i<arrSource.length;i++){
if(arrSource[i][1] == strValue){
break;
}
}
}
else{
for(i=0;i<arrSource.length;i++){
if(arrSource[i][0] == strValue){
break;
}
}
}
if(i==arrSource.length){
i = 0;
}
var varV,varH;
eval("varV = " + selobj + ".formVarV;");
eval("varH = " + selobj + ".formVarH;");
document.all(varV).value = arrSource[i][1];
document.all(varH).value = arrSource[i][0];
eval(selobj + ".selectedIndex = i;");
}
function resetValue(selobj,arrSource,intChecked)
{
var selon,strFuncName;
eval("selon = " + selobj + ".idOn;")
eval("strFuncName = "+selobj+".strFuncName;");
var i;
var strHTML;
strHTML = "";
for(i=0;i<arrSource.length;i++){
strHTML = strHTML + "<DIV class=selectItem id=" + selon + "_" + i + " onmouseover=HighlightOption(" + selobj + "," + i + "); onclick=\"OptionClicked(" + selobj + "," + i + ",'" + arrSource[i][0] + "');" + strFuncName + "\" onmouseout=NormalOption(" + selobj + "," + i + ");>" + arrSource[i][1] + "</DIV>";
}
eval("document.all(\"" + selon + "\").innerHTML = strHTML;");
eval(selobj + ".arrSource = arrSource;");
if(intChecked == null) intChecked = 0;
setValue(selobj,arrSource[intChecked][0]);
}
function clearValue(selobj)
{
var selon;
eval("selon = "+selobj+".idOn;");
eval("document.all(\"" + selon + "\").innerHTML = \"\";");
var varV,varH;
eval("varV = " + selobj + ".formVarV;");
eval("varH = " + selobj + ".formVarH;");
document.all(varV).value = "";
document.all(varH).value = "";
var arrSource = new Array();
eval(selobj + ".arrSource = arrSource;");
}
function setEnable(selobj,blnEnabled)
{
eval(selobj + ".disabled = !blnEnabled;");
}
function setVisible(selobj,blnVisible)
{
var seltable;
eval("seltable = " + selobj + ".selTable;");
if(blnVisible){
document.all(seltable).style.visibility = "visible";
}
else{
document.all(seltable).style.visibility = "hidden";
}
}
function setDisplay(selobj,blnDisplay)
{
var seltable;
eval("seltable = " + selobj + ".selTable;");
if(blnDisplay){
document.all(seltable).style.display = "";
}
else{
document.all(seltable).style.display = "none";
}
}
function getLength(selobj)
{
var arrSource;
eval("arrSource = " + selobj + ".arrSource;");
return arrSource.length;
}
function insertValue(selobj,strValue,strShowValue)
{
var arrSource;
eval("arrSource = " + selobj + ".arrSource;");
var i;
i = arrSource.length;
arrSource[i] = new Array();
arrSource[i][0] = strValue;
arrSource[i][1] = strShowValue;
resetValue(selobj,arrSource);
}
function getEnable(selobj)
{
var blnEnabled;
eval("blnEnabled = !" + selobj + ".disabled;");
return blnEnabled;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -