<script src="editableselect.js"></script>
<select id="EditableSelect">
<option>可以编辑的select第二版</option>
<option>Bencalie制作</option>
</select>
=======================
editableselect.js
window.onload=function(){
var objSelect=EditableSelect
var obj=document.all.EditableSelect
getTop=obj.offsetTop;
getLeft=obj.offsetLeft;
while(objSelect=objSelect.offsetParent){
getTop+=objSelect.offsetTop;
getLeft+=objSelect.offsetLeft;
}
var oNewItem=document.createElement("OBJECT");
document.body.insertBefore(oNewItem);
oNewItem.outerHTML="<object id=editable style=\"z-index:2;position:absolute\" type=\"text/x-scriptlet\" data=\"addin2.htm\"></object>";
editable.style.left=getLeft+1
editable.style.top=getTop+1
editable.style.width=obj.offsetWidth-19
editable.style.height=obj.offsetHeight-3
obj.onchange=function(){editable.str(obj.options[obj.selectedIndex].text)}
obj.onresize=function(){editable.style.width=obj.offsetWidth-19}
}
function addNewOption(value){
EditableSelect.options[EditableSelect.length]=new Option(value,value)
}
=======================
addin2.htm
<script language="vbs">
function public_str(theStrIn)
strIn.value=theStrIn
end function
</script>
<body leftmargin=0 topmargin=0>
<script language="javascript">
function check(){
var obj=parent.document.all.EditableSelect
var theValue=document.all.strIn.value.replace(/^\s*/g,"").replace(/\s*$/g,"")
if(event.keyCode==13){
if(theValue!=""){
for(i=0;i<obj.length;i++)
if(obj.options[i].text==theValue){
alert("该选项已经存在!");
document.all.strIn.focus();
document.all.strIn.value="";
return;
}
parent.addNewOption(theValue)
}
document.all.strIn.value=""
}
}
</script>
<input id=strIn style='border:0;width:100%;height:100%;padding-top:2px' onkeydown=check()>
</body>
……