首先要做的是选择活动编辑器。这里,我们使用其id选择编辑器,即content
.
var activeEditor = tinyMCE.get(\'content\');
然后我们用tinyMCE的
setContent
:
var activeEditor = tinyMCE.get(\'content\');
var content = \'HTML or plain text content here...\';
activeEditor.setContent(content);
但是,如果编辑器首先处于文本模式,则在加载页面后,
activeEditor
将是
null
. 因此,我们需要考虑:
var activeEditor = tinyMCE.get(\'content\');
var content = \'HTML or plain text content here...\';
if(activeEditor!==null){
activeEditor.setContent(content);
}
自
setContent
仅适用于tinyMCE,如果编辑器处于文本模式,则此选项无效。因此,我们必须直接调用textarea并更新其值:
var activeEditor = tinyMCE.get(\'content\');
var content = \'HTML or plain text content here...\';
if(activeEditor!==null){
activeEditor.setContent(content);
} else {
$(\'#content\').val(content);
}
然而,另一个警告是,如果切换到视觉模式,然后再切换回文本模式,
activeEditor
不再为null,因此
setContent
将始终调用而不是textarea。所以我们必须检查编辑器的状态。为了确定当前模式,我们监视div#wp content wrap的类。总而言之:
var content = \'HTML or plain text content here...\';
if($(\'#wp-content-wrap\').hasClass(\'html-active\')){ // We are in text mode
$(\'#content\').val(content); // Update the textarea\'s content
} else { // We are in tinyMCE mode
var activeEditor = tinyMCE.get(\'content\');
if(activeEditor!==null){ // Make sure we\'re not calling setContent on null
activeEditor.setContent(content); // Update tinyMCE\'s content
}
}