=波波日志 > JavaScript/Ajax > firefox下光标处插入文本=

[转]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,因为没有打印出任何东西,所以觉得没用,但看了这段代码,算是明白了!
类别:JavaScript/Ajax 作者:转载 日期:2009-06-17 【评论:0】 
 
暂时没有评论!
发表留言
  • *昵称:
  • 头像:
  • 电子邮件: [留下您的邮件,方便管理员回复您。]
  • 个人网站: *验证码:
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载或引用的作品侵犯了您的权利,请通知我们,我们会及时删除!
Powered by showbo,©2012,桂ICP备05005887号 京公网安备1101055090