tinyMCE媒体嵌入,使用PHP + MySql中的媒体插件

时间:2011-04-13 12:24:24

标签: php mysql tinymce

我正在使用tinyMCE而我无法在他们的论坛中找到答案。

我正在使用“媒体”插件来嵌入闪存。 html预览中的html结果是正常的:

<p><iframe src="http://www.youtube.com/embed/lWRi7gDYjVY" frameborder="0" width="425" height="350"></iframe></p>

保存到数据库的结果完全不同,使用mysql_real_escape_string保存:

<p><img data-mce-json="{'type':'iframe','video':{'sources':[]},'params':{'src':'http://www.youtube.com/embed/lWRi7gDYjVY','frameborder':'0'},'width':'425','height':'350'}" class="mceItemMedia mceItemIframe" src="http://localhost/assets/scripts/tiny_mce/themes/advanced/img/trans.gif" data-mce-src="assets/scripts/tiny_mce/themes/advanced/img/trans.gif" width="425" height="350"></p>

这就是我页面的html上呈现的内容,只显示了iframe大小的空格......

我真的被卡住了,我不知道该怎么办。 感谢

/ 更新 /

好吧,我发现了问题的根源:我通过AJAX保存我的内容;我还没有找到一种方法用javascript从编辑器中获取HTML内容,所以我用jQuery选择器来攻击它:

$('div').find('iframe').contents().find('body').html()

所以这样我就得到了“错误的HTML”,而且到目前为止只发生在youtube视频中。

我的问题是:如何获取编辑器的HTML以便我可以通过AJAX发布它?

再次感谢你。

2 个答案:

答案 0 :(得分:1)

要获取编辑器的HTML,请使用以下

// this is "content" by default else it is the id of your 
// html element you get the editor for (usually a textarea)
var editor_id = 'put_your_editor_id_here';
editor = tinymce.get(editor_id);
var content = editor.getContent();

您可以仔细查看tinymce API.

答案 1 :(得分:0)

这是因为媒体插件会剥离被视为无效的标记。

您可以尝试更改Init中的Valid_elements选项并分配给 []。

试试吧。

祝你好运