输入

时间:2018-02-15 07:39:47

标签: javascript scroll tinymce tinymce-4

我在固定大小的窗口中有一个TinyMCE编辑器,它是一个绝对定位的div元素。

输入文字时,一切都表现正常。当到达窗口底部时,编辑器将在文本中断到下一行时滚动,因此输入的内容始终可见。

然而,当按下ENTER时,插入符将移出可见窗口,编辑器不会滚动。当多次按下ENTER时,滚动条将移动,表示我现在正在查看文档的中间而不是结尾。输入更多文本后,编辑器将滚动到文档末尾的新位置。

我在按下keyup时尝试使用ENTER事件处理程序插入文本:

editor.selection.setContent("TEST");

并且文本正在插入正确的位置(当前插入符号位置),但编辑器仍然不会滚动直到输入更多文本,此时它将跳转到正确的位置,即到最后一次测试按ENTER插入。

知道这里有什么问题以及如何在窗口底部按下ENTER时让编辑器正确滚动?

1 个答案:

答案 0 :(得分:0)

经过大量的搜索,阅读和反复试验后,我想出了以下解决方案:

setup: function (editor) {
    editor.on("keyup", function(event) {
        if (event.keyCode === 13) {
            editor.selection.getNode().scrollIntoView(false);
        }
    }
}

它并不完美但非常接近。当在文档底部按下ENTER时,它将正确滚动。当向后滚动并按ENTER时,当前插入位置将滚动到窗口底部。但这是另一个问题,原来的问题已经解决了。