最近做的一个网站后台用到UBB编辑器,找来找去找到了jtbceditor,它包含一些基本的功能,够用了。但是,使用者反映说IE下插入图片时,老是插入到最前面,不太方便,希望能插入到光标的地方。
:-( 我只好开始研究jtbceditor的js代码了,找呀,改呀,调啊,郁闷啊,就是找不到怎么改!终于,终于,在一天的奋战后,在义务加了半小时班的时候,搞定了,O(∩_∩)O哈!解决这个问题的关键在于了解IE下把文本或html代码插入到光标处的步骤:
JavaScript语言: 知蚁博客 程序设计
document.getElementById(textarea_id).focus();
var tRange = document.selection.createRange();
tRange.text = some_text; //插入文本
或
tRange.pasteHTML(some_html); //插入html
var tRange = document.selection.createRange();
tRange.text = some_text; //插入文本
或
tRange.pasteHTML(some_html); //插入html
对比jtbceditor,发现它少了focus()。于是得到最终的解决方法是在tGetSelection方法里添加“this.tEI(this.tid + ‘-iframe’).contentDocument.body.focus();”,插入图片时将execCommand改为手动设置html代码,这样就能在光标处插入图片了。
在改了jtbceditor的这个问题后,又改了一下其他小问题,结果html和ubb切换时出现多出换行的问题。最后发现问题出在p上面,解决方法是解析p时,多匹配前面0个或1个\r\n,嗯,又该复习下正则表达式了。
原创文章请注明转载于知蚁博客,本文地址:http://www.letuknowit.com/archives/16