防止滚动跳跃在CKEditor和TinyMCE内联编辑器在Chrome上的对话框关闭

Prevent scroll jumping in CKEditor and TinyMCE Inline editors on Chrome on dialog close

本文关键字:Chrome 编辑器 对话框 滚动 跳跃 CKEditor TinyMCE      更新时间:2023-09-26

我在chrome(52.0.2743.116,没有尝试过其他版本)中有问题,其中关闭CKEditor或TinyMCE内联模式(链接,表格,颜色选择器等)中的任何对话框后,页面将滚动回顶部。这种行为在Firefox中不会发生,我也没有试过IE。

这个问题应该能够在这里的ckeditor示例中重现。要进行复制,请选择底部的一个长列,然后向下滚动,使div的顶部离屏幕稍远一些。现在点击链接按钮并按取消键,页面应该会对齐到div的顶部。

关于如何解决这个问题的任何想法,无论是JS黑客还是只是一个简单的配置?

谢谢。

下一个hack将帮助,只需添加到/CKEditor/config.js

CKEDITOR.on('instanceReady', function(ev) {
    ev.editor.on('dialogHide', function() {
        let height = (window.pageYOffset || document.documentElement.scrollTop);
        window.setTimeout(function() { window.scroll(0, height); }, 0);
    })
});