TinyMCE将<img/>变为<img/>

时间:2012-12-21 17:48:39

标签: javascript jquery tinymce codemirror

Tinymce正在删除我的img结束标记并生成无效的xhtml。

它变成了这个

<img src="image.jpg" />

进入这个

<img src="image.jpg" data-mce-src="/../Index/image.jpg">

我也使用了codemagic,但在查看html时它仍然显示。我也试过包括<img></img>,但输出是一样的。

思想?

以下是我的选择

var tinyMceOptions = {
    mode: 'textareas',
    theme: 'advanced',
    element_format : "xhtml",
    plugins: 'codemagic,wordcount,inlinepopups,sparkimage, sparklink',
    theme_advanced_buttons1: 'formatselect,fontsizeselect,|, bold,italic,underline,|,bullist,numlist,|,outdent,indent,blockquote,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,sub,sup,|,sparklink,sparkimage,codemagic',
    theme_advanced_buttons2: '',
    theme_advanced_buttons3: '',
    theme_advanced_toolbar_location: 'top',
    theme_advanced_toolbar_align: 'left',
    theme_advanced_resizing: true,
    theme_advanced_statusbar_location: "bottom",
    valid_elements: "*[*]",
    //extended_valid_elements :"script[language<javascript|type|src]",
    skin: 'o2k7',
    width: '575px',
    height: '350px',
    forced_root_block : false,
    theme_advanced_blockformats: 'h1,h2,h3,h4,h5,h6,p',
    relative_urls : false,
    setup : function (ed) {
        ed.onChange.add(function (ed, evt) {
            var val = $('iframe#_contentAreaID_ifr').contents().find('body').html();
                $('._hiddenContentContainer[data-contentid=' + currentTab + '] ._hiddenContentArea').val(val);
            }
        );
    }
};

2 个答案:

答案 0 :(得分:2)

这是TinyMCE代码本身的一个问题。

它从未打算与XHTML一起使用 - 如果您确实想要使用它,那么您必须编辑核心。

Here is an article that might highlight how to use strict XHTML with TinyMCE

答案 1 :(得分:2)

问题不在于TinyMCE,而在于我们如何从活动编辑器中获取内容。我们使用了jquery的$.html()方法,而不是使用TinyMce的tinyMCE.activeEditor.getContent()方法重新审阅内容。

我最初遇到过this帖子,谈到我所遇到的同一问题,其中图片标签未输出为xhtml。这导致我this堆叠帖子,这解释了为什么它不起作用。

引用其中一个答案

  

.html()不返回提供给的HTML或XHTML标记   制作节点,它返回浏览器的内部表示   相关节点。此内部表示不是XHTML   符合并且不是 - 它在技术上是内部的   实施细节。