如何无需重新初始化TinyMCE 6即可动态更换其CSS文件?
TinyMCE编辑器动态更换绑定CSS的解决方案
TinyMCE常用于CMS软件中,绑定到编辑器的CSS文件经常需要更换,操作时有两点核心注意事项:
- 必须彻底卸载当前CSS文件,否则原有CSS规则仍会影响编辑器内容
- 若仅修改CSS文件内容但不更改文件名,浏览器缓存会导致重新加载无效
可行解决方案
function reloadCSS() { // 移除所有已加载的CSS文件 tinymce.activeEditor.dom.styleSheetLoader.unloadAll(tinymce.activeEditor.contentCSS); // 清空存储CSS文件列表的变量 tinymce.activeEditor.contentCSS = []; // 为CSS文件名添加时间戳,强制从服务器加载而非读取缓存 let new_css = 'editor.css?t=' + Date.now(); // 将新CSS文件添加到存储列表的变量中 tinymce.activeEditor.contentCSS.push(new_css); // 加载新CSS文件到编辑器 tinymce.activeEditor.dom.styleSheetLoader.load(new_css); }
我最初尝试通过重新初始化编辑器来实现,但效果不理想。
内容的提问来源于stack exchange,提问作者Oleg Schildt
相关产品推荐
相关产品推荐

