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失去焦点如何在原来的位置插入内容

评论(0)Web开发网
阅读(190)喜欢(0)JavaScript/Ajax开发技巧