0

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

$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、重复滚动条和无法调整工作表大小,因此我不想使用此选项。

还有其他方法吗?

4

1 回答 1

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();
于 2016-06-02T14:03:55.317 回答