Wordpress 中的 tinymce 编辑器 getContent null
tinymce editor getContent null in Wordpress
我正在尝试在 WordPress 管理区域中使用 Tinymce 编辑器的 getContent 功能,但无济于事。
这是我想做的工作笔
https://codepen.io/anon/pen/oWxjyM?editors=1111
HTML
<textarea class="wp-editor-area" rows="20" autocomplete="off" cols="40" name="wprss_ftp_post_prepend" id="wprsspostprepend"><p>To give is good</p></textarea>
JS
jQuery(document).ready(function() {
$("#wprsspostprepend").addClass("prepend_editor");
var name = "wprsspostprepend";
if($("#" + name).length > 0) {
tinyMCE.init({
mode : "specific_textareas",
editor_selector : "prepend_editor"
});
var content = tinyMCE.activeEditor.getContent();
alert(content);
tinyMCE.activeEditor.setContent("<div id='random-wrap'>" + content + "</div>");
}
});
如果 Wordpress 在 codepen 中有效,为什么我会在 Wordpress 中收到空引用错误。
这里的问题很可能是 init()
方法是异步的。您似乎在调用 init()
后立即尝试使用 tinymce
对象(例如 tinymce.activeEditor
),但初始化过程可能尚未完成,因此您没有 "active" 编辑器页面。
如果您想与编辑器交互 "as soon as its available",您可以在 TinyMCE init()
调用中使用 onInit 触发器。例如:
tinymce.init({
selector: '#myTextArea",
setup: function (editor) {
editor.on('init', function () {
this.setContent('<p>Add content via on init!</p>');
});
}
});
我正在尝试在 WordPress 管理区域中使用 Tinymce 编辑器的 getContent 功能,但无济于事。
这是我想做的工作笔
https://codepen.io/anon/pen/oWxjyM?editors=1111
HTML
<textarea class="wp-editor-area" rows="20" autocomplete="off" cols="40" name="wprss_ftp_post_prepend" id="wprsspostprepend"><p>To give is good</p></textarea>
JS
jQuery(document).ready(function() {
$("#wprsspostprepend").addClass("prepend_editor");
var name = "wprsspostprepend";
if($("#" + name).length > 0) {
tinyMCE.init({
mode : "specific_textareas",
editor_selector : "prepend_editor"
});
var content = tinyMCE.activeEditor.getContent();
alert(content);
tinyMCE.activeEditor.setContent("<div id='random-wrap'>" + content + "</div>");
}
});
如果 Wordpress 在 codepen 中有效,为什么我会在 Wordpress 中收到空引用错误。
这里的问题很可能是 init()
方法是异步的。您似乎在调用 init()
后立即尝试使用 tinymce
对象(例如 tinymce.activeEditor
),但初始化过程可能尚未完成,因此您没有 "active" 编辑器页面。
如果您想与编辑器交互 "as soon as its available",您可以在 TinyMCE init()
调用中使用 onInit 触发器。例如:
tinymce.init({
selector: '#myTextArea",
setup: function (editor) {
editor.on('init', function () {
this.setContent('<p>Add content via on init!</p>');
});
}
});