IE下textarea失去焦点如何在原来的位置插入内容
由于IE下调用obj.focus()并不能使光标回到原来的位置或者使选择的内容再次选择上,所以在IE浏览器下需要保存当前的Range对象,以便进行相应的操作时,在原来的位置进行,而不是跑到其他的位置去。
示例代码
<input type="button" onclick="pop()" value="弹出层" /> <textarea id="txt">12345678</textarea> <script type="text/javascript"> var rng; function pop() { if (document.all) {//IE要保存Range var txt = document.getElementById('txt'); txt.focus(); rng = document.selection.createRange(); } document.getElementById('dvPop').style.display = 'block'; } function Insert(o) { if (o.value == '') { alert('请输入内容!'); o.focus(); return; } var txt = document.getElementById('txt'); txt.focus(); if (rng) { rng.text = o.value; rng.select(); } else { var v = txt.value, start = txt.selectionStart, end = txt.selectionEnd; txt.value = v.substring(0, start) + o.value + v.substring(end); } o.parentNode.style.display = 'none'; } </script> <div id="dvPop" style="position:absolute;left:100px;top:100px;height:100px;width:200px;background:#fff;border:solid 1px black;display:none"> <input type="text" /><input type="button" value="在textarea中插入输入框内容" onclick="Insert(this.previousSibling)" /> </div>
加支付宝好友偷能量挖...
原创文章,转载请注明出处:IE下textarea失去焦点如何在原来的位置插入内容