2016-01-24 179 views
0

我有以下用例: 在我的应用程序中,我使用Froala编辑器v2.0.5。在那里,我在工具栏上添加了一个自定义按钮,该按钮打开引导模式对话框,用户可以在其中选择或搜索某些特定页面/链接。 这一切与folling代码工作:Froala编辑器 - 自定义对话框

$j(function() { 
    $j.FroalaEditor.DefineIcon('linkInsertArticle', {NAME: 'search'}); 
    $j.FroalaEditor.RegisterCommand('linkInsertArticle', { 
     title: synapse_translate("article.edit.links.linkInsertArticle"), 
     focus: false, 
     undo: true, 
     refreshAfterCallback: false, 
     callback: function() { 
      $j("#article-link-dialog").modal(); 
     } 
    }); 
}); 

现在我想选择的链接插入到我的文件。

问题: 当用户在对话框中的某处点击时,编辑器将失去焦点/文本选择。现在用户点击我的自定义对话框上的“插入”按钮,该对话框调用以下方法:

editor.link.insert(someLink, someTitle); 

并关闭对话框。但是这种方法不起作用,因为编辑器目前没有关注/选择。

问题: 是否可以打开自定义对话框而不失去编辑器中的焦点/选择? Froala图像管理器使用这样的对话框,但我不知道如何将自举模态内容放到froala模态中。

我仍尝试过iframe = true的选项。使用此选项,编辑器将始终保持其选择状态,但此选项会在我的应用程序中带来一些错误,例如缺少CSS,重复滚动条和工作表调整大小,所以我不想使用此选项。

有没有其他方法可以做到这一点?

+0

没有u得到任何解决办法???如果是的话请分享 – Dhara

回答

0

您是否尝试保存并恢复选择?这个工作对我来说,虽然它抛出Chrome的错误(“不连续选择不被支持。”)

这里是代码我使用:

$.FroalaEditor.DefineIcon('linkInsertArticle', {NAME: 'plus'}); 
    $.FroalaEditor.RegisterCommand('linkInsertArticle', { 
     title: "link", 
     focus: false, 
     undo: true, 
     refreshAfterCallback: false, 
     callback: function() { 
      $("#myModal").modal(); 
      $('.redactor').froalaEditor('selection.save'); 

     } 
    }); 


    $(this) 
    .on('froalaEditor.initialized', function (e, editor) { 
     editor.events.bindClick($('body'), '#insert-text', function() { 
      editor.events.focus(); 
     $('.redactor').froalaEditor('selection.restore'); 

      editor.html.insert("Insert some html..."); 

     }); 
     }) 
    .froalaEditor(); 
+0

什么是$('。redactor')在这里?因为我面临同样的问题.. – Dhara