防止TinyMCE移除span元素

W3M*_*Max 11 tinymce

这是问题演示

你可以在这里试试:http://fiddle.tinymce.com/SLcaab

这是TinyMCE的默认配置

  • 少了所有的插件
  • with extended_valid_elements:"span"

1 - 打开Html源编辑器

2 - 将此html粘贴到Html源编辑器中:

<p><span>Hello</span></p>
<p><a href="http://www.google.com">Google 1</a></p>
<p><a href="http://www.google.com">Google 2</a></p>
Run Code Online (Sandbox Code Playgroud)

3 - 单击Html源编辑器中的更新以将html粘贴到编辑器中

4 - 请记住'Hello'周围有一个范围.

5 - 将光标放在Google 2之前,然后按退格键(两个链接应合并在同一段落元素中).

6 - 使用Html源代码编辑器查看生成的html.

结果(问题):即使我们在TinyMCE设置中为extended_valid_elements添加了"span",html文档中也不再有span.

注意:我删除了所有插件,以确保问题是TinyMCE的核心.

编辑1 - 我也尝试过: valid_children:"+ p [span]" - 仍然不起作用

编辑2:仅在WebKit上重现(在Firefox和IE上确定)

Jan*_*Bae 12

插入extended_valid_elements : 'span'tinymce.init:

tinymce.init({
    selector: 'textarea.tinymce',
    extended_valid_elements: 'span',
    //other options
});
Run Code Online (Sandbox Code Playgroud)

  • 我使用它,它接受了跨度,但是问题是它仍然删除了该跨度的所有属性(在我的情况下为class属性)。在这种情况下,解决方案是使用:`extended_valid_elements:'span [*]',`(以便在范围后面添加`[*]`)。 (2认同)

小智 11

我有同样的问题,我找到了解决方案.Tiny MCE删除了没有任何arrtibute的SPAN标记.尝试我们跨越课程或其他attrib.例如:

<h3><span class="emptyClass">text</span></h3>
Run Code Online (Sandbox Code Playgroud)

在TinyMCE 4+这个方法很好的工作.


am_*_*am_ 0

您正在运行最新版本的 TinyMCE 吗?我遇到了相反的问题 - 新版本的 TinyMCE 会添加不需要的跨度元素。降级到 v3.2.7 对我来说解决了这个问题,如果您愿意使用旧版本,这也可能对您有用。

已报告类似的错误,请参阅以下链接以了解在“span”元素上过滤的错误: http://www.tinymce.com/develop/bugtracker_bugs.php# !order=desc&column=number&filter=span&status=open,verified&type=bug