<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>
|