27

我已经阅读了各种论坛和 SO 上的大量帖子,但似乎仍然无法阻止 tinymce 从可编辑块的末尾剥离空标签。

例如我输入这个:

<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[*]",

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

4

6 回答 6

22

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

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

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

使用示例:

tinyMCE.init({
    ...
    verify_html: false
});
于 2016-01-21T09:28:08.233 回答
4

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

因此,我建议&nbsp;在不会被剥离且不可见的空标签内使用,即使搜索引擎也不可见。

我的 tinyMCE 上并没有取消这样做:<div class="someclass">&nbsp;</div>

于 2016-11-09T10:15:28.553 回答
3

我在这里坚持这一点,因为我仍然在WordPress博客(即使是现在,2016 年)上一直遇到这个问题,我需要使用空 div 来插入Google Analytics、Google TranslateGoogle Tag Manager

典型的模式是你在博客页面的某个地方添加一个你需要它的地方,下次你回来用 TinyMCE 编辑器触摸页面时,你的 div 不见了!

我发现似乎总是可靠地工作的唯一事情是这样的:

<div id="google_translate_element" style="text-align:right;"><span style="display:none;">ha_ha_I_beat_u_tinyMCE</span></div>
于 2016-06-12T11:00:49.867 回答
1

对我来说,解决方案是极端并扩展有效元素以接受所有,可能并不理想但客户很高兴

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');
于 2018-08-16T22:09:34.560 回答
1

如果要防止删除特定的空标签,请使用 option extended_valid_elements

例子:

tinyMCE.init({
    ...
    extended_valid_elements: 'span[*]'
});
于 2021-03-04T04:44:27.727 回答
0
tinyMCE.init({
    ...
    extended_valid_elements: 'span[*]'
});

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

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

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

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

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

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

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

verify_html: false
于 2021-06-21T17:54:10.193 回答