检查TinyMCE在WordPress中是否处于活动状态的方法

时间:2009-07-24 17:49:18

标签: javascript wordpress tinymce

我正在开发一个插件,当TinyMCE用作Visual编辑器时,使用TinyMCE命令将文本插入到正文内容编辑区域。目前,只需运行该命令即可。如果它有效,那么TinyMCE是活动的,如果没有,那么我有自定义JS来处理HTML编辑器。

我的问题是:有没有办法检查TinyMCE是否处于活动状态,而不仅仅是运行命令并且当它不是时会失败?

4 个答案:

答案 0 :(得分:24)

而且......我已经为自己回答了这个问题。您要测试的条件如下:

is_tinyMCE_active = false;
if (typeof(tinyMCE) != "undefined") {
  if (tinyMCE.activeEditor == null || tinyMCE.activeEditor.isHidden() != false) {
    is_tinyMCE_active = true;
  }
}

诀窍是当未激活TinyMCE时tinyMCE.activeEditor返回null。您可以使用isHidden()方法确保在切换回HTML编辑器模式时它没有执行。

这在TinyMCE网站和论坛上的记录很少。

答案 1 :(得分:7)

是的,我在wordpress上看到了这个代码:ABSPATH / wp-includes / js / autosave.js文件

// (bool) is rich editor enabled and active
var rich = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();

答案 2 :(得分:2)

因为这个问题在搜索引擎中排名。我想当我们在一个页面中有多个wordpress编辑器实例时,我应该扩展Daniels的一些答案。

    var is_editor_active = function(editor_id){

        if(typeof tinyMCE == 'undefined'){
            return false;
        }

        if( typeof editor_id == 'undefined' ){
            editor = tinyMCE.activeEditor;
        }else{
            editor = tinyMCE.EditorManager.get(editor_id);
        }

        if(editor == null){
            return false;
        }

         return !editor.isHidden();

    };

<强>用途

当您只需要检查活动编辑器时

if(is_editor_active()){
    // do stuff
}

如果需要检查具有特定ID的编辑器

if(is_editor_active('mycontent'){
    // do stuff
}

我希望这个小功能对其他人有所帮助:)。

答案 3 :(得分:0)

根据WordPress editor.js,我们可以轻松地检查以下内容:

    if ( window.wpActiveEditor ) {
       // editor active
    }else {
       // not active
    }