m.s*_*tos 3 javascript wordpress jquery tinymce
我正在创建一个Wordpress插件,它metabox
在包含按钮的帖子编辑器下添加了一个权限.该插件还会在结束</body>
标记的正下方加载Javascript文件.
目的
目前,我想用插件实现的目标很简单.当用户向编辑器输入内容然后单击元框内的按钮时,我想修改编辑器的内容.
JS代码
最简单的形式:
jQuery(document).ready(function($) {
$('#button').on('click', function(e) {
e.preventDefault();
var editor = tinyMCE.get("content");
editor.setContent(some_content);
});
});
Run Code Online (Sandbox Code Playgroud)
问题
问题是editor
变量回报undefined
.
FIREBUG(试图设置时var editor
)
wpActiveEditor
:"content"
editors
:[]
activeEditor
:null
我做了什么
我在Tinymce的文档和Stackoverflow上找到了许多很多东西(也有许多小的调整),但问题仍然存在.
任何帮助将非常感激.
PS.运行我的测试时,内容textarea是可见的.
m.s*_*tos 11
当编辑器首次加载"文本"模式激活时,tinymce不会被初始化,因此您无法使用tinyMCE.get()
,而不是"可视"模式.
(我没有注意到它实际上在"可视"模式下工作,因为我一直在"文本"模式下测试它)
因此,必须使用条件语句来确定哪个选项卡处于活动状态.我用这个方法解决了我的问题:
function setEditorContent(val) {
var $_editorTextArea = $('#content');
$_editorTextArea.is(':visible') ? $_editorTextArea.val(val) : tinyMCE.get('content').setContent(val);
}
Run Code Online (Sandbox Code Playgroud)
希望这个答案可以防止一些头痛:)