我正在开发一个插件,当TinyMCE用作Visual编辑器时,使用TinyMCE命令将文本插入到正文内容编辑区域。目前,只需运行该命令即可。如果它有效,那么TinyMCE是活动的,如果没有,那么我有自定义JS来处理HTML编辑器。
我的问题是:有没有办法检查TinyMCE是否处于活动状态,而不仅仅是运行命令并且当它不是时会失败?
答案 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
}