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

时间:2014-11-03 22:09:14

标签: javascript tinymce tinymce-4

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

每个可编辑的DIV都在一个带有特定ID(#MyWrapper)的DIV(不可编辑)包装内。

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

当我使用javascript从#MyWrapper中获取html时,它运行良好,除了我在编辑器中使用HTML,而不是我想要的REAL HTML。例如,iframe(YouTube视频)被制作成示例图像而不是真正的iframe。

因此,我尝试从编辑器中获取HTML代码(当您单击"源代码"编辑器内部时)显示相同的HTML。

但我还没有成功。

以下是我现有的(工作,但没有获得真正的HTML)脚本的工作方式:

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

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

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

今天,任务#1(上图)使用以下方法解决:

jQuery("#ForSaving").html(jQuery(".MyWrapper").html());

但是我应该有一个解决方案来从DIV中的多个内联编辑器中获取真正的HTML。

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

感谢任何帮助。 : - )

增加: 我通过搜索" tinymce multiple instances getcontent"来找到了这个。 How to get tinyMCE content from more than one text area

Thariama补充说回复说:

for (i=0; i < tinyMCE.editors.length; i++){
    var content = tinyMCE.editors[i].getContent();
    alert('Editor-Id(' + tinyMCE.editors[i].id + '):' + content);
}

但是,我不明白如何将其与:

结合起来
jQuery("#ForSaving").html(jQuery(".MyWrapper").html());

我不擅长javascript编码。

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

1 个答案:

答案 0 :(得分:3)

你不应该只使用数据库吗?非常确定你通过允许这样的保存来暴露自己的巨大安全漏洞..

http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.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()