2015-09-25 66 views
0

我目前正在编写项目的ckeditor, 我们正在使用链接对话框插件。将ckeditor插入符号设置为新链接的末尾

正如标题中所说,我希望创造新的联系,并在结尾设置插入符号。 一旦添加新链接,默认行为将在编辑器中选择文本。

我一直在与周围的link.js插件

我想我所在的位置这一点,但我不能我一个标签,在所有情况下,结束后设置我的插入符(它的工作原理有时=>它把脱字号放在最后,但经过一些尝试后,它确实把它放在我的链接的开头)

以下是它的作用示例: 第一次:[a href =“#” ]我的链接[/ a]^ 经过一些尝试后:[a href =“#”] my link [/ a] [a href =“#”] my link [/ a]^[a href =“#”]我的链接[/ a]

代码侧链接插件的onOk方法:

//I've commented the line under to have no selection : it works 
//range.select(); 
// According to the doc, this should do the job ?? 
range.moveToPosition(text, CKEDITOR.POSITION_AFTER_END); 

感谢您的关注。

Dre。

回答

1

您可以在不触及插件核心的情况下实现该功能。策略是执行默认对话框的onOk,然后根据需要调整选择(JSFiddle)。要做到这一点,你需要摆在首位,以覆盖缺省onOkdialogDefinition事件:

CKEDITOR.on('dialogDefinition', function(evt) { 
    var dialogName = evt.data.name; 
    var dialogDefinition = evt.data.definition; 
    var editor = evt.editor; 

    if (dialogName == 'link') { 
     var defaultOnOk = dialogDefinition.onOk; 

     dialogDefinition.onOk = function() {    
      defaultOnOk.apply(this, arguments); 

      var sel = editor.getSelection(), 
       range = sel.getRanges()[ 0 ], 
       path = range.startPath(); 

      range.moveToPosition(path.contains('a'), CKEDITOR.POSITION_AFTER_END); 
      range.select(); 
     } 
    } 
}); 
+0

嗨Olek,干什么,我得到了以下错误 遗漏的类型错误后,感谢欧答案, :无法读取属性'getParent'null 我已经删除了选择操作,因为我不希望我的文本被选中,无论如何,因为那个错误我的对话框将不会关闭.. – dredtrake