1

我正在编写一个使用 tinymce 编辑文档的 Web 应用程序。在我的 Web 应用程序中,支持拖放以插入指向系统中保存的文件的链接。

我遇到的问题是当我尝试在 Firefox 中将链接插入到 tinymce 文档中时。当我从文件查看器中拖动文件并将其放入文档时,文档会插入链接,但光标会在文档内消失。但是,我可以从光标所在的位置键入。使光标重新出现的唯一方法是单击应用程序中的其他位置,然后单击返回文档。

我在 drop 上添加链接的代码是:

 function addLink(id, contentType, text)
    {
        var link = " <a href='#open:" + contentType + "%20" + id + "'>" + text + "</a>";
        tinymce.get("myDocPage").execCommand("mceInsertContent", false, link);
    }

在单步执行 tinymce 的代码后,我发现 execCommand 有一个未记录的第四个参数。它是一个配置对象,用于处理要执行的命令的各种选项,例如正在修改的文档是否应该获得焦点。所以我将上面的第二行替换为:

tinymce.get("myDocPage").execCommand("mceInsertContent", false, link, {skip_focus: true});

完成此操作后,我只需单击返回文档并出现光标,但编辑从新放置的链接开始,所有新文本都将成为链接的一部分。

Chrome 中不会发生上述行为。Chrome 正确处理插入并将焦点更改为存在光标的文档。

有没有人遇到过这个问题?如果是这样,它是如何修复的或有解决方法吗?Firefox 似乎没有正确处理焦点。

下面是显示问题的 js fiddle 的链接。 http://fiddle.tinymce.com/O3daab/1

4

0 回答 0