2012-01-31 55 views
1

我有一个页面,并希望使用TinyMCE编辑页面上的某些元素。当我试图编辑下列元素,里面tinyMCE的实际加载的内容是列目前的2TinyMCE清除某些div

Original : As loaded in MCE 
<dd>1234<span></span></dd> : 1234<span></span> 
<tr><td><label>A</label></td><td>B</td></tr> : <label>A</label>B 

我知道有一些HTML验证正在进行哪些检查父子元素的关系(例如TR应该来只有当有表格作为父项时)。有没有办法告诉tinyMCE停止这样做,并允许我直接编辑tr元素,而无需编辑完整的表格元素。即我想停止tinyMCE在加载的HTML中进行任何更改,而不管其是否有效。

而且,我试过verify_html和valid_elements设置,但似乎没有帮助这里

感谢

回答

2

你来到这里两个选项

  1. 您使用cleanup: false, TinyMCE的初始化设置,将 禁用html检查

或者您可以使用b埃特选项

2 ..和定义哪些元素和childelements编辑应该接受为有效

在你的情况你valid_elements做NIOT需要得到更新,导致trtdlabel已经默认有效元素(但是如果你喜欢,你可以将它们定义为无效)。 您需要做的是将其作为有效儿童添加到valid_children设置。 如果要定义TR的标签,对标签和其他元素的有效子元素,你将需要设置像这样

valid_children: "body[p|ol|ul]" + 
    ",p[a|span|b|i|u|sup|sub|img|hr|#text|tr|td|label]" + 
    ",span[a|b|i|u|sup|sub|img|#text|tr|td|label]" + 
    ",a[span|b|i|u|sup|sub|img|#text|tr|td|label]" + 
    ",b[span|a|i|u|sup|sub|img|#text|tr|td|label]" + 
    ",i[span|a|b|u|sup|sub|img|#text|tr|td|label]" + 
    ",sup[span|a|i|b|u|sub|img|#text|tr|td|label]" + 
    ",sub[span|a|i|b|u|sup|img|#text|tr|td|label]" + 
    ",li[span|a|b|i|u|sup|sub|img|ol|ul|#text]" + 
    ",ol[li]" + 
    ",ul[li]", 
+1

注意:功能现在已弃用。它看起来像只有valid_children和valid_elements现在控制清理:/ – 2014-12-21 18:53:32

+2

@ ManuelArwedSchmidt:是的,Moxiecode删除了功能“清理:假” – Thariama 2014-12-22 10:39:42

+1

只是想补充一点,以防有人绊倒这一点:我目前正在使用此设置来避免任何清理旧的,部分WORD生成的html,它的工作原理很好:verify_html:false,fix_table_elements:false,schema:'html4',invalid_elements:'',valid_elements:'* [*]',valid_children:'* [* ]' 这允许任何html,从之前使用的所见即所得编辑器中保留'不可编辑'属性的风险很小。 – 2014-12-22 17:37:34

0

我们使用编辑器来定义我们自己的个性语言和标记电子邮件模板在发送电子邮件时被替换。

没有一个建议的解决方案适用于我们,因为我们有时会将我们的自定义语言与html混合在一起,并且不断从我们放入的源代码修改它,所以我们通过用注释围绕无效html并添加一个直接在标签内部的特殊字符序列以知道在稍后删除这些特殊评论。

所以特殊标签可能看起来像: <!--~~ Invalid markup to not mess with ~~-->

然后,您可以删除特殊标签<!--~~~~-->当内容被使用或呈现。

缺点是评论之间的内容不会显示在编辑器中(或直到特殊评论标签被移除时才显示在页面上)。