我在固定大小的窗口中有一个TinyMCE编辑器,它是一个绝对定位的div
元素。
输入文字时,一切都表现正常。当到达窗口底部时,编辑器将在文本中断到下一行时滚动,因此输入的内容始终可见。
然而,当按下ENTER
时,插入符将移出可见窗口,编辑器不会滚动。当多次按下ENTER
时,滚动条将移动,表示我现在正在查看文档的中间而不是结尾。输入更多文本后,编辑器将滚动到文档末尾的新位置。
我在按下keyup
时尝试使用ENTER
事件处理程序插入文本:
editor.selection.setContent("TEST");
并且文本正在插入正确的位置(当前插入符号位置),但编辑器仍然不会滚动直到输入更多文本,此时它将跳转到正确的位置,即到最后一次测试按ENTER
插入。
知道这里有什么问题以及如何在窗口底部按下ENTER
时让编辑器正确滚动?
答案 0 :(得分:0)
经过大量的搜索,阅读和反复试验后,我想出了以下解决方案:
setup: function (editor) {
editor.on("keyup", function(event) {
if (event.keyCode === 13) {
editor.selection.getNode().scrollIntoView(false);
}
}
}
它并不完美但非常接近。当在文档底部按下ENTER
时,它将正确滚动。当向后滚动并按ENTER
时,当前插入位置将滚动到窗口底部。但这是另一个问题,原来的问题已经解决了。