firefox下光标处插入文本

做可视化编辑的器的时候突然发现一个问题,原来在TEXTAREA里面,FF的做法是:

+展开
-JavaScript
 var rangeStart=textObj.selectionStart;   
        var rangeEnd=textObj.selectionEnd;   
        var tempStr1=textObj.value.substring(0,rangeStart);   
        var tempStr2=textObj.value.substring(rangeEnd);   
        textObj.value=tempStr1+textFeildValue+tempStr2;   
        textObj.focus();   
        var len=textFeildValue.length;   
        textObj.setSelectionRange(rangeStart+len,rangeStart+len);   
        textObj.blur();  

textObj是文本域对象(节点),下面也一样,是iframe对象。textFeildValue是你要插入的文本.下面是ht.

但selectionStart和selectionEnd只是针对文本和input域的。现在是iframe。所以只能从新找个法子。结果某网友说在FCK里有很好的办法,试了一下,OK:

+展开
-JavaScript
var oSel = textObj.getSelection(); 
   var oRange = oSel.getRangeAt(0); 
   var oFragment = oRange.createContextualFragment(ht) ; 
   var oLastNode = oFragment.lastChild ; 
   oRange.insertNode(oFragment) ; 
   oRange.setEndAfter( oLastNode ) ; 
   oRange.setStartAfter( oLastNode ) ; 
   oSel.removeAllRanges() ; 
   oSel = textObj.getSelection(); 
   oSel.addRange( oRange ) ;

之前用getRangeAt,因为没有打印出任何东西,所以觉得没用,但看了这段代码,算是明白了!

加支付宝好友偷能量挖...


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