我在 JQuery:Tab 的多个选项卡中像这样启动tinyMCE。但我发现多次初始化tinyMCE会产生只读文本区域。因此我想检查tinyMCE是否已经启动。是否有像 isInitated() 这样的方法或类似方便的方法?
tinyMCE.init({
mode : "textareas",
theme : "simple",
width : "500",
height : "300"
});
您可以使用
tinymce.editors.length
查看是否已经有一个已初始化的编辑器实例 (tinymce.editors.length > 0
)。
我知道这个问题已经很老了,但是......万一有人仍在寻找圣杯:
在tinymce 4中,您可以将回调传递给tinyMCE.init,如下所示:
tinyMCE.init({
//your regular parameters here...
setup: function(editor) {
editor.on('init', function() {
//all your after init logics here.
});
}
});
您可以将
init_instance_callback
添加到 init()
参数。当tinymce实例已经初始化时,将调用此回调。
我正在使用tincyMCE 4.7.2
我尝试了@Thariama 的答案,但它对我不起作用,我想是因为他的答案对于旧版本的tinyMCE 有效。
这对我有用(同样,根据您正在开发的版本,这对您没有帮助)
if (tinymce.initialized === true)
要检查“tinyMCE”是否已设置,只需使用以下命令:
if(typeof(tinyMCE) != "undefined") {}
试试这个:
if (typeof(tinymce.activeEditor.contentDocument) !== "undefined") {
// initialized
}
我找到了其他解决方案。
假设你有元素
<textarea id="tinymce0"></textarea>
现在假设您初始化它:
let config = { selector : '#tinymce0'};
tinymce.init(config);
之后你可以做这个:
let tinmyMceInstance = tinymce.get('tinymce0');
if( tinmyMceInstance === null ){
// Your code if not initialized
}
请记住:
get()
不起作用工作于:
{
releaseDate: "2019-05-09",
majorVersion: "5",
minorVersion: "0.5",
}
所以可能是:5.5
要在 TinyMCE 6 及以上版本中执行 Thariama 的解决方案,您可以进行如下检查:
if (tinymce.Editor.length > 0) {
// your action here
}