如何判断tinyMCE是否已经启动?

问题描述 投票:0回答:8

我在 JQuery:Tab 的多个选项卡中像这样启动tinyMCE。但我发现多次初始化tinyMCE会产生只读文本区域。因此我想检查tinyMCE是否已经启动。是否有像 isInitated() 这样的方法或类似方便的方法?

tinyMCE.init({
    mode : "textareas",
    theme : "simple",
    width : "500",
    height : "300"
});
javascript tinymce
8个回答
27
投票

您可以使用

tinymce.editors.length
查看是否已经有一个已初始化的编辑器实例 (
tinymce.editors.length > 0
)。


21
投票

我知道这个问题已经很老了,但是......万一有人仍在寻找圣杯:

在tinymce 4中,您可以将回调传递给tinyMCE.init,如下所示:

tinyMCE.init({
  //your regular parameters here...
  setup: function(editor) {
    editor.on('init', function() {
      //all your after init logics here.
    });
  }
});

4
投票

您可以将

init_instance_callback
添加到
init()
参数。当tinymce实例已经初始化时,将调用此回调。


2
投票

我正在使用tincyMCE 4.7.2
我尝试了@Thariama 的答案,但它对我不起作用,我想是因为他的答案对于旧版本的tinyMCE 有效。

这对我有用(同样,根据您正在开发的版本,这对您没有帮助)

if (tinymce.initialized === true)

2
投票

要检查“tinyMCE”是否已设置,只需使用以下命令:

if(typeof(tinyMCE) != "undefined") {}

1
投票

试试这个:

if (typeof(tinymce.activeEditor.contentDocument) !== "undefined") {
 // initialized
}

1
投票

我找到了其他解决方案。

假设你有元素

<textarea id="tinymce0"></textarea>

现在假设您初始化它:

let config  = { selector : '#tinymce0'};
tinymce.init(config);

之后你可以做这个:

let tinmyMceInstance = tinymce.get('tinymce0');
if( tinmyMceInstance === null ){
  // Your code if not initialized
}

请记住:

  • 这只适用于 id,似乎使用 classname 来表示
    get()
    不起作用

工作于:

{
     releaseDate: "2019-05-09",
     majorVersion: "5",
     minorVersion: "0.5",
}

所以可能是:5.5


0
投票

要在 TinyMCE 6 及以上版本中执行 Thariama 的解决方案,您可以进行如下检查:

if (tinymce.Editor.length > 0) {
    // your action here
}
© www.soinside.com 2019 - 2024. All rights reserved.