Способ проверить, работает ли TinyMCE в WordPress
Я работаю над плагином, который, когда TinyMCE используется в качестве редактора Visual, использует команды TinyMCE для вставки текста в область редактирования содержимого тела. В настоящее время он работает, просто выполнив команду. Если он работает, то TinyMCE активен, а если нет, то у меня есть пользовательский JS для работы с редактором HTML.
Однако мой вопрос: есть ли способ проверить, активен ли TinyMCE или нет, а не просто запустить команду и не сработает, если это не так?
Ответы
Ответ 1
И... Я ответил на вопрос сам. Условие, которое вы хотите проверить, следующее:
is_tinyMCE_active = false;
if (typeof(tinyMCE) != "undefined") {
if (tinyMCE.activeEditor == null || tinyMCE.activeEditor.isHidden() != false) {
is_tinyMCE_active = true;
}
}
Фокус в том, что tinyMCE.activeEditor
возвращает значение null, когда TinyMCE не активирован. Вы можете использовать метод isHidden()
, чтобы убедиться, что он не выполняется, когда вы переключаетесь обратно в режим HTML-редактора.
Это плохо документировано на веб-сайте и форумах TinyMCE.
Ответ 2
Да, я увидел этот код в wordpress: файл ABSPATH/wp-includes/js/autosave.js
// (bool) is rich editor enabled and active
var rich = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden();
Ответ 3
Поскольку эти вопросы ранжируются в поисковых системах. Я думаю, что я должен немного расширить ответы Daniels, чтобы поддержать, когда у нас есть несколько экземпляров редактора wordpress на одной странице.
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
}
Если необходимо проверить редактор с определенным идентификатором
if(is_editor_active('mycontent'){
// do stuff
}
Я надеюсь, что эта небольшая функция будет полезной для других:)