Javascript TinyMCE 4:如何从同一页面上有许多DIV内联编辑器的页面中获取真正的HTML内容?(保存到1个文件)

Javascript TinyMCE 4:如何从同一页面上有许多DIV内联编辑器的页面中获取真正的HTML内容?(保存到1个文件),javascript,tinymce,tinymce-4,Javascript,Tinymce,Tinymce 4,在我的CMS中,我在一个HTML页面上有许多div,其中包含内联TinyMCE。每个DIV都有自己的实例(#mce_0和#mce_{randomnumber}) 每个可编辑DIV都位于一个具有特定ID(#MyWrapper)的包装DIV(不可编辑)中 MyWrapper(所有编辑器div)中的所有内容都应保存到一个文件中。 当我使用javascript从#MyWrapper内部获取html时,它工作得很好,只是我在编辑器中使用了html,而不是我想要的真正的html。例如,iframe(YouT

在我的CMS中,我在一个HTML页面上有许多div,其中包含内联TinyMCE。每个DIV都有自己的实例(#mce_0和#mce_{randomnumber})

每个可编辑DIV都位于一个具有特定ID(#MyWrapper)的包装DIV(不可编辑)中

MyWrapper(所有编辑器div)中的所有内容都应保存到一个文件中。

当我使用javascript从#MyWrapper内部获取html时,它工作得很好,只是我在编辑器中使用了html,而不是我想要的真正的html。例如,iframe(YouTube视频)被制作成示例图像,而不是真实的iframe

因此,我尝试从编辑器中获取HTML代码(与单击编辑器中的“源代码”时显示的HTML相同)

但我没有成功

下面是我现有的(正在工作,但没有得到真正的HTML)脚本的工作原理:

1) 获取#MyWrapper中的所有HTML内容

2) Jquery:将其添加到名为#ForSaving的不可编辑和隐藏的DIV中,这样我就可以轻松访问并保存它

3) 然后我有一个javascript将其保存到文件中

今天,任务#1(如上)通过以下方式解决:

jQuery("#ForSaving").html(jQuery(".MyWrapper").html());
但我应该有一个解决方案,从DIVs中的多个内联编辑器中获取真正的HTML

我试过tinymce.get(“…”);等等,但我无法从多个编辑器中获取HTML

感谢您的帮助。:-)

补充: 我通过搜索“tinymce multiple instances getcontent”找到了这一点:

Thariama补充了一个回复,告诉我们使用这个:

for (i=0; i < tinyMCE.editors.length; i++){
    var content = tinyMCE.editors[i].getContent();
    alert('Editor-Id(' + tinyMCE.editors[i].id + '):' + content);
}
我不太擅长javascript编码


我恳请你帮我把这些结合起来。谢谢:-)

你不应该只使用数据库吗?很确定,通过允许这样的储蓄,您将面临巨大的安全漏洞

直接从网站上~

// Get the HTML contents of the currently active editor
console.debug(tinyMCE.activeEditor.getContent());

// Get the raw contents of the currently active editor
tinyMCE.activeEditor.getContent({format : 'raw'});

// Get content of a specific editor:
tinyMCE.get('content id').getContent()

你不应该只使用数据库吗?很确定,通过允许这样的储蓄,您将面临巨大的安全漏洞

直接从网站上~

// Get the HTML contents of the currently active editor
console.debug(tinyMCE.activeEditor.getContent());

// Get the raw contents of the currently active editor
tinyMCE.activeEditor.getContent({format : 'raw'});

// Get content of a specific editor:
tinyMCE.get('content id').getContent()

你不应该只使用数据库吗?很确定,通过允许这样的储蓄,您将面临巨大的安全漏洞

直接从网站上~

// Get the HTML contents of the currently active editor
console.debug(tinyMCE.activeEditor.getContent());

// Get the raw contents of the currently active editor
tinyMCE.activeEditor.getContent({format : 'raw'});

// Get content of a specific editor:
tinyMCE.get('content id').getContent()

你不应该只使用数据库吗?很确定,通过允许这样的储蓄,您将面临巨大的安全漏洞

直接从网站上~

// Get the HTML contents of the currently active editor
console.debug(tinyMCE.activeEditor.getContent());

// Get the raw contents of the currently active editor
tinyMCE.activeEditor.getContent({format : 'raw'});

// Get content of a specific editor:
tinyMCE.get('content id').getContent()


据我所知,这些仅在页面上有一个tinyMCE实例时有效。当你有多个孩子的时候。我保存到一个平面文件,但使用上面的方法将所有HTML收集到一个隐藏的DIV中,以删除一些HTML内容。这也隐藏在登录的后面。最后一行代码表明它通过idI获取内容可能很累,但这不应该是mce 0等吗?或者我可以在那里使用#MyWrapper,它将从包装div中的所有TinyMCE实例中获取内容吗?在测试了很多东西之后,我可以确认TinyMCE.get(#)将只获取#的最后一个实例,而不是在同一页面上,因为您使用的是ID,如果您想循环所有您可以做的事情$('.myeditor')。each()这将循环每个编辑器并使用$(this)指针来获取内容据我所知,这些仅在页面上有一个tinyMCE实例时有效。当你有多个孩子的时候。我保存到一个平面文件,但使用上面的方法将所有HTML收集到一个隐藏的DIV中,以删除一些HTML内容。这也隐藏在登录的后面。最后一行代码表明它通过idI获取内容可能很累,但这不应该是mce 0等吗?或者我可以在那里使用#MyWrapper,它将从包装div中的所有TinyMCE实例中获取内容吗?在测试了很多东西之后,我可以确认TinyMCE.get(#)将只获取#的最后一个实例,而不是在同一页面上,因为您使用的是ID,如果您想循环所有您可以做的事情$('.myeditor')。each()这将循环每个编辑器并使用$(this)指针来获取内容据我所知,这些仅在页面上有一个tinyMCE实例时有效。当你有多个孩子的时候。我保存到一个平面文件,但使用上面的方法将所有HTML收集到一个隐藏的DIV中,以删除一些HTML内容。这也隐藏在登录的后面。最后一行代码表明它通过idI获取内容可能很累,但这不应该是mce 0等吗?或者我可以在那里使用#MyWrapper,它将从包装div中的所有TinyMCE实例中获取内容吗?在测试了很多东西之后,我可以确认TinyMCE.get(#)将只获取#的最后一个实例,而不是在同一页面上,因为您使用的是ID,如果您想循环所有您可以做的事情$('.myeditor')。each()这将循环每个编辑器并使用$(this)指针来获取内容据我所知,这些仅在页面上有一个tinyMCE实例时有效。当你有多个孩子的时候。我保存到一个平面文件,但使用上面的方法将所有HTML收集到一个隐藏的DIV中,以删除一些HTML内容。这也隐藏在登录的后面。最后一行代码表明它通过idI获取内容可能很累,但这不应该是mce 0等吗?或者我可以在那里使用#MyWrapper,它将从包装div中的所有TinyMCE实例中获取内容吗?在测试了很多东西之后,我可以确认TinyMCE.get(#)将只获取#的最后一个实例,而不是在同一页面上,因为您使用的是ID,如果您想循环所有您可以做的事情$('.myeditor')。each()这将循环每个编辑器并使用$(this)指针获取内容