Jquery wp#U编辑器Tiny MCE getContent不';t返回HTML视图的内容
我在开发的插件中使用wp_编辑器,并且注意到如果编辑器位于HTML视图中,.getContent()不会获取编辑器的内容(与可视化编辑器相反) 如果编辑器在HTML视图中加载,它将返回Jquery wp#U编辑器Tiny MCE getContent不';t返回HTML视图的内容,jquery,wordpress,tinymce,Jquery,Wordpress,Tinymce,我在开发的插件中使用wp_编辑器,并且注意到如果编辑器位于HTML视图中,.getContent()不会获取编辑器的内容(与可视化编辑器相反) 如果编辑器在HTML视图中加载,它将返回 tinyMCE.get(inputid) is undefined 但即使我尝试通过以下方式获取内容: jQuery("#"+inputid).html() or jQuery("#"+inputid).val() 它返回null。更让我吃惊的是,如果编辑器是以可视化模式加载的,请切换到HTM
tinyMCE.get(inputid) is undefined
但即使我尝试通过以下方式获取内容:
jQuery("#"+inputid).html() or jQuery("#"+inputid).val()
它返回null。更让我吃惊的是,如果编辑器是以可视化模式加载的,请切换到HTML视图,进行一些更改,然后使用.getContent(),它将在进行任何更改之前返回可视化编辑器的值
我拔出我的头发与这一个供应有限,所以帮助将不胜感激 您需要调用
tinyMCE.triggerSave()代码>
在jQuery(“#”+inputid)之前。html()
将生成实际的编辑器内容
(顺便说一句,你说的“html视图”是什么意思?)我也遇到了同样的问题。原因是VisualTab中的编辑器是tinyMCE,而html选项卡中的编辑器只是一个纯文本区域。当html选项卡处于活动状态时,tinyMCE编辑器不会被激活,因此您需要查询文本区域。textarea将id传递给wp_editor()函数。您可以使用传统的jquery方法查询它
例如,此代码使用tinyMCE编辑器的内容设置名为content的变量(如果该变量被激活),或者使用textarea的内容设置名为content的变量(如果tinyMCE未返回任何内容)(因为选中了HTML选项卡):
为了让它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;
}
let content;
const editor = tinyMCE.get(inputid);
if (null !== editor && false === editor.hidden) {
// Ok, the active tab is Visual
content = editor.getContent();
} else {
// The active tab is HTML, so just query the textarea
content = $('#'+inputid).val();
}
这是我正在使用的功能,从未让我失望过
它非常简单,即使TinyMCE还没有加载,也能正常工作。
它只是检查包装器的类,使用起来非常安全
您可以按如下方式检查活动选项卡:
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;
}
let content;
const editor = tinyMCE.get(inputid);
if (null !== editor && false === editor.hidden) {
// Ok, the active tab is Visual
content = editor.getContent();
} else {
// The active tab is HTML, so just query the textarea
content = $('#'+inputid).val();
}
抱歉,我忘了提及我也尝试过triggerSave(),结果相同。在WP编辑器中,您可以在标准(微型MCE编辑器)和html视图之间切换选项卡,这允许您在不使用WYSIWYG编辑器的情况下编辑html。嗯,sry,我不太熟悉WPE编辑器,但这是一个适合我的编辑器!谢谢分享!这是所有解决方案中效果最好的。投了赞成票。老兄,老兄,我在想同一页上的多个wp_编辑出了问题。但是我让所有的编辑器都处于HTML模式。你的回答很有帮助!提示:使用tinymce.editors
可以在页面上获取所有活动的tinymce编辑器。