【问题记录】tinyMCE工具栏弹窗滚动页面定位不正确问题处理

问题

遇到一个dialog弹窗中tinyMCE富文本组件的操作栏在页面滚动时的展示问题。操作栏弹窗位置没有跟随富文本组件进行跟随滚动,而是固定不动,展示存在问题。

排查

tinyMCE在项目不是第一次使用。比较了正常展示的页面后,发现了两者的差异,正常的是在主页面中进行使用,现在发现问题的是在dialog弹窗中。 对页面元素进行检查发现,承载操作栏的div父节点都是挂载在html.body下面:

发现问题,当在dialog中使用tinyMCE时,操作栏在做绝对定位,是在相对html.body下的父级元素做定位,导致在dialog中滚动时无法做到准确的位置计算。

解决

在编辑器初始化完成后将操作栏父级节点从html.body移至与编辑器同级节点

js 复制代码
tinyMCE.init({
    ...,
    setup: function(editor) {
        editor.on('init', function() {
            const container = editor.getContainer();
            const toxContainer = document.querySelector('body > .tox.tox-tinymce-aux');
            container.parentNode.appendChild(toxContainer);
        });
    },
    ...
});
相关推荐
GISer_Jing30 分钟前
字符串操作&栈和队列
前端·javascript
黑土豆36 分钟前
TypeScript技术系列13:深入理解配置文件tsconfig.json
前端·javascript·typescript
zheshiyangyang43 分钟前
JavaScript---原型和原型链
开发语言·前端·javascript
大个个个个个儿1 小时前
vue3腾讯云直播 前端拉流(前端页面展示直播)
前端·javascript·腾讯云
Cutey9162 小时前
实现可配置的滚动效果:JavaScript与CSS双方案
javascript·面试
喝西瓜汁的兔叽Yan2 小时前
【常用功能】下载文件和复制到剪切板
前端·javascript
1024小神2 小时前
tauri2 程序如何拿到启动参数?例如-toen
前端·javascript
码觉客2 小时前
介绍一下基于 PDF.js 较新版本(接近或涵盖 v5.0 概念,虽然实际稳定版本可能是 v4.x)获取批注列表的方法
前端·javascript
顾洋洋2 小时前
WASM与OPFS组合技系列二(魔改读操作)
前端·javascript·webassembly
@PHARAOH2 小时前
WHAT - React 两个重要的 Typescript 类型:ReactNode vs JSX.Element
javascript·react.js·typescript