Kyl*_*leC 4 wordpress jquery tinymce
我在我正在开发的插件中使用 wp_editor 并注意到 .getContent() 如果它在 HTML 视图中(与可视化编辑器相反)不会获取编辑器的内容。
如果编辑器在 HTML 视图中加载,它将返回
tinyMCE.get(inputid) is undefined
Run Code Online (Sandbox Code Playgroud)
但即使我尝试通过以下方式获取内容:
jQuery("#"+inputid).html() or jQuery("#"+inputid).val()
Run Code Online (Sandbox Code Playgroud)
它返回空值。更让我困惑的是,如果编辑器以可视模式加载,切换到 HTML 视图,进行一些更改,然后使用 .getContent() 它将在进行任何更改之前返回可视编辑器的值。
我正在用这个拔出我有限的头发供应,因此将不胜感激!
我正在努力解决同样的问题。原因是visual选项卡中的编辑器是tinyMCE,html选项卡中的编辑器只是一个纯文本区域。不知何故,当 html 选项卡处于活动状态时,tinyMCE 编辑器未激活,因此您需要改为查询 textarea。textarea 将 id 传递给 wp_editor() 函数。您可以使用传统的 jquery 方法查询它。
例如,此代码设置一个名为 content 的变量,如果它被激活,则使用 tinyMCE 编辑器的内容,或者如果 tinyMCE 没有返回任何内容(因为选择了 HTML 选项卡),则使用 textarea 的内容:
var content;
var editor = tinyMCE.get(inputid);
if (editor) {
// Ok, the active tab is Visual
content = editor.getContent();
} else {
// The active tab is HTML, so just query the textarea
content = $('#'+inputid).val();
}
Run Code Online (Sandbox Code Playgroud)
为了使其 100% 工作,我必须这样做:
function get_tinymce_content(id) {
var content;
var inputid = id;
var editor = tinyMCE.get(inputid);
var textArea = jQuery('textarea#' + inputid);
if (textArea.length>0 && textArea.is(':visible')) {
content = textArea.val();
} else {
content = editor.getContent();
}
return content;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6330 次 |
| 最近记录: |