【问题标题】:Tags are overlapping (going inside another tags) in TinymceTinymce 中的标签重叠(进入另一个标签内)
【发布时间】:2021-05-19 10:19:08
【问题描述】:

我们在项目中使用 Tinymce 5.6.2,遇到了非常奇怪的问题。我们有两个自定义按钮,当您单击它们时,它们会添加一些 HTML(例如 span 标签)。因此,要重现该问题,首先单击 Button1,它将在 HTML 下方插入编辑器窗口:

<p><span class="container1"><span class="icon1">1</span>[[Test One]]</span></p>

现在按键盘上的主页按钮或使用箭头键并转到编辑器窗口的大部分左侧,即在新添加内容之前。请参阅下图中突出显示的光标位置:

现在单击 Button2,它将插入另一个 HTML。从技术上讲,它应该在 Button1 内容之前插入新的 HTML,因为我们已将光标移动到编辑器窗口的开头和 Button1 内容之前,但是当您看到编辑器窗口的代码时,您会发现第二组 HTML 元素已插入到 Button1 的 HTML 中。见下图:

我创建了一个小提琴来重现这个问题:https://fiddle.tiny.cloud/f5haab/3

有人知道为什么会发生这种情况以及如何解决这个问题吗?

【问题讨论】:

    标签: javascript html tinymce tinymce-5 tinymce-plugins


    【解决方案1】:

    我知道这种行为是意料之中的,因为许多人将 span 用于不同类型的格式,例如颜色、大小写、字体大小等,并且希望能够以相同的格式编写 a 的开头和结尾词。

    但是,如果您不希望出现上述行为,您可以使用 noneditable plugin 来保护您的标签。有关工作示例,请参见下面的小提琴: https://fiddle.tiny.cloud/55haab/1

    当我使用这个不可编辑的插件时,我遇到了另一个问题。基本上要使用不可编辑的插件,我们在 tinymce.init 的插件中添加“noneditable”,并在元素中使用“mceNonEditable”类。就我而言,当我尝试应用提到的这个类时,我遇到了 JS 错误,

    tinymce.min.js:9 Uncaught TypeError: Cannot read property 'class' of undefined

    所以,为了解决这个问题,我在 tinymce.init 中使用“extended_valid_elements”应用这个类:

    extended_valid_elements: 'accessfilter[class=mceNonEditable]'
    

    【讨论】:

      【解决方案2】:

      我们有两个方向可以尝试:

      【讨论】:

        猜你喜欢
        • 2013-04-17
        • 1970-01-01
        • 2014-10-04
        • 1970-01-01
        • 2020-03-04
        • 2019-06-28
        • 1970-01-01
        • 2021-03-03
        • 1970-01-01
        相关资源
        最近更新 更多