主题: 关于Kindeditor的range
作者: kunanfo, 发布日期: 2013-01-07 14:59:10, 浏览数: 3028

我在使用kindeditor 4.1.3的时候,想获取光标所在位置,但是获取的range参数不正确(如果光标在最后一个位置,则是正确的,如果光标在输入文本的的中间位置,得到的range参数就不正确),请问应该如何获取,以下是我的样例代码:

 

1、Textarea

<form id="form_id">
 <textarea id="content" name="content" style="width:700px;height:200px;visibility:hidden;">KindEditor</textarea>
</form>

 

2、初始化KindEditor,command是我自定义的一个插件,功能是点击后在光标所在位置插入一个特殊符号"◆"

var editor;
KindEditor.ready(function(K) {
 editor = K.create('textarea[name="content"]', {
  resizeType : 1,
  allowPreviewEmoticons : false,
  allowImageUpload : false,
  items : [
   'command','fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
   'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
   'insertunorderedlist', '|', 'emoticons', 'image', 'link', 'source']
 });
 
 $(editor.edit.iframe.get().contentWindow.document.body).keydown(function(event){
  if(event.keyCode == 27){
   editor.clickToolbar('command');
   return false;
  } else if(event.keyCode == 123){
   alert("d");
   var allRangeContent = editor.text();//文本框中的文本,含HTML
   var textRangeContent = allRangeContent;//去除<BR>回车等键后的文本内容
   var workRangeContent = textRangeContent.substring(0,  editor.cmd.range.startOffset);//截取文本工作区
   alert("[" + editor.cmd.range.startOffset + "]" + workRangeContent);
   var tempStart = workRangeContent.lastIndexOf("◆");
   var command = workRangeContent.substring(tempStart).replace("◆","");
   alert("POS END:" + editor.cmd.range.startOffset + "\nText:" + allRangeContent + "\ntempStart:" + tempStart + "\nCommand:" +command);
   return false;
  }
 });
});

 

非常感谢,在搜索帖子,很少有关于这个range的使用,不知道使用方式是否正确。

作者: Roddy, 发布日期: 2013-01-07 18:56:35
用 editor.insertHtml('abc'); 插入就可以,Range不是字符串能拼接的。
回复
发表新帖 发表回复