我们目前在CakePHP框架上使用TinyMCE(版本:3.3.9.2(2010-09-29)),并且正在尝试修改Advance Themes文件tiny_mce/themes/advanced/editor_template.js
以接受Microdata语法(用于使用Schema) .org词汇表)通过添加以下字符串:
extended_valid_elements : "p[itemtype|itemscope|itemprop|id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup]",
和/或
extended_valid_elements : "@[itemtype|itemscope|itemprop|id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup]",
引用此调试代码段:http://www.tinymce.com/develop/bugtracker_view.php?id=4469
但是,当我们修改文件并进行刷新时,即使我们在HTML源代码编辑器中将<p itemtype="def">This is some content.</p>
或 <div itemscope itemtype="http://schema.org/Movie">This is some content.</div>
作为测试,也会删除所有内容。
任何人都有任何关于如何修复TinyMCE继续剥离结构化数据的想法?
答案 0 :(得分:0)
在TinyMCE v3.4之前,有一个配置选项cleanup
和另一个选项verify_html
。您可以尝试将这些选项设置为false
。 This thread似乎表明,即使extended_valid_elements
中列出了属性,仍会发生某些属性剥离。
我对自己遇到这个问题有一种朦胧的记忆,并且读到TinyMCE在修复无效HTML时非常积极,即使配置设置尽可能宽松。如果我能在TinyMCE论坛上找到这些主题,我会在一些链接中进行编辑。
另一个问题可能是使用CakePHP进行验证。较旧版本的CakePHP有一个Sanitize类,可以过滤掉HTML。确认该字符串未在HTML Purifier等库中运行。