初始化所有 tinyMCE 编辑器后如何设置回调执行?
Posted
技术标签:
【中文标题】初始化所有 tinyMCE 编辑器后如何设置回调执行?【英文标题】:How to set callback to execute after all the tinyMCE editors have been initialized? 【发布时间】:2020-09-05 16:52:11 【问题描述】:我已经使用 Wordpress 的wp_editor
功能加载了一个 tinyMCE 编辑器。
现在,我想在该编辑器初始化后设置它的值。我试着这样做:
$(function()
tinymce.get(...).setContent(...);
);
但由于编辑器尚未初始化,它会抛出错误消息Cannot read property 'setContent' of undefined
。为了确认这一点,我使用console.log( tinymce.editors.length )
语句进行控制台登录并打印0
,但后来当我在加载完成后使用浏览器控制台检查变量tinymce.editors
时,编辑器就在那里,我可以对其进行操作。
所以,我的结论是等待所有的 tinyMCE 编辑器被初始化,然后运行上面的代码来改变编辑器的值。请注意,我需要使用 JS 设置值,而不是从后端 (php)。
请告诉我是否有办法做到这一点。如果您需要更多信息或者我不清楚,请问我。
提前致谢:)
【问题讨论】:
这能回答你的问题吗? Wait for TinyMCE to load 【参考方案1】:您可以等待添加特定的编辑器管理器,然后绑定init
事件处理程序来设置编辑器的内容,如下所示:
tinymce.on( 'addeditor', e =>
if ( e.editor.id === <your_editor_id> )
e.editor.on( 'init', event =>
event.target.setContent( <your_editor_content> );
);
, true );
【讨论】:
【参考方案2】:您可以在 TinyMCE 初始化后使用编辑器配置中的 setup 选项填充它。例如:
setup: function (editor)
editor.on('init', function (e)
editor.setContent('<p>Hello world!</p>');
);
尝试在调用 wp_editor() 时传入这些编辑器设置。
资源:
How to get content and set content in TinyMCE【讨论】:
我没有使用tinymce.init
方法来初始化编辑器。如果我有,我不会有这个问题。我正在使用 wordpress 的wp_editor
功能。
是的,但我认为有一种方法可以在调用 wp_editor() 时将这些设置传递给编辑器。例如,请参阅wordpress.stackexchange.com/questions/48356/…以上是关于初始化所有 tinyMCE 编辑器后如何设置回调执行?的主要内容,如果未能解决你的问题,请参考以下文章
TinyMCE初始化后用javascript设置textarea值
TinyMCE 的removeformat插件会给数字和字母会自动添加<span lang="EN-US"></span>,如何设置不会添加?