我正在使用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发布它?
再次感谢你。
答案 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选项并分配给 []。
试试吧。
祝你好运