如何防止tinymce从输入中剥离空标签?

时间:2012-05-06 01:51:34

标签: tinymce

我已经在各种论坛上阅读了很多帖子,并且在SO上,但仍然无法阻止tinymce从可编辑块的末尾剥离空标签。

E.g。我输入了这个:

<a href="blah">zzz</a>
<div class="floatClearer" style=""></div>

..并且在往返(进出HTML模式)时,tinymce剥离整个<div class="floatClearer" style=""></div>

根据我发现的各种建议,我尝试了这些东西,还有更多:

  • 删除我div中的valid_elements前面的减号,

...和这些配置。选项:

  • verify_html : false,
  • extended_valid_elements : "div*",
  • extended_valid_elements : "div[*]",

一切都无济于事。有什么方法可以阻止剥离动作吗?还有其他地方我需要空标签(不仅仅是在这个例子中),所以,如果可以,请告诉我一个特定于我的问题的答案,而不是建议我不使用空标签。

6 个答案:

答案 0 :(得分:14)

TinyMCE中存在一个错误,现在已经修复(在v3.5.2中)。感谢@Thariama

对于未来的搜索者:使用verify_html选项。

  

此选项启用或禁用元素清理功能。如果将此选项设置为false,则将跳过所有元素清理,但仍会执行其他清理功能,例如URL转换。

     

使用示例:

tinyMCE.init({
    ...
    verify_html: false
});

答案 1 :(得分:3)

我坚持这一点,因为我 仍然 遇到了这个问题 所有 时间WordPress博客(即使是现在,2016年),我需要使用空div来插入 Google Analytics,Google翻译 Google跟踪代码管理器

典型的模式是你在需要它的博客页面上添加一个地方,下次你回来并用TinyMCE编辑器whammo触摸页面,bammo你的div消失了!

我发现的 ONLY 似乎始终可靠地运行,如下所示:

<div id="google_translate_element" style="text-align:right;"><span style="display:none;">ha_ha_I_beat_u_tinyMCE</span></div>

答案 2 :(得分:3)

因为我也有麻烦,我正在添加我的砖 - 在Cliff Ribaudo的答案之上。

因此,我建议在空标记内使用&nbsp;,该标记不会被剥离,也不会被搜索引擎看到。

这样做并没有被我的tinyMCE剥离:<div class="someclass">&nbsp;</div>

答案 3 :(得分:1)

对我来说,解决方案是极端的,将有效元素扩展为接受ALL,这可能不理想,但客户很满意

function override_mce_options($initArray) {
     $opts = '*[*]';
    $initArray['valid_elements'] = $opts;
    $initArray['extended_valid_elements'] = $opts;
    return $initArray;
}
add_filter('tiny_mce_before_init', 'override_mce_options');

答案 4 :(得分:0)

如果您想阻止删除特定的空标签,请使用选项 extended_valid_elements

示例:

tinyMCE.init({
    ...
    extended_valid_elements: 'span[*]'
});

答案 5 :(得分:0)

tinyMCE.init({
    ...
    extended_valid_elements: 'span[*]'
});

我使用的是 TinyMCE 5.5,上面的这个例子并没有阻止 TinyMCE 为我剥离 empty 跨度标签。我正在使用一种解决方法,它比在 span 标签内添加注释以防止 TinyMCE 剥离要好,我已经这样做了,所以我可以包含 fontawesome 图标:

<span class="fas fa-check-circle"><!--icon--></span>

我认为您可以像这样关闭 TinyMCE 中的所有 html 验证/编辑,但我对此并不满意:

    tinyMCE.init({
    ...
    extended_valid_elements: 'span[*]'
});

我使用的是 TinyMCE 5.5,上面的这个例子并没有阻止 TinyMCE 为我剥离空的 span 标签。我正在使用一种解决方法,它比在 span 标签内添加注释以防止剥离要好,我已经这样做了,所以我可以包含字体真棒图标:

<span class="fas fa-check-circle"><!--icon--></span>

我认为您可以使用此设置关闭 TinyMCE 中的所有 HTML 验证/编辑,但我对此并不满意:

verify_html: false