【问题标题】:CKEditor : How to prevent bookmarks to be wrapped in paragraphs?CKEditor:如何防止书签被包裹在段落中?
【发布时间】:2018-02-02 21:34:53
【问题描述】:

我正在尝试将 CKEditor 用于一个项目,但我发现需要书签。 The documentation 表示创建书签的侵入性方式在源中添加 span 元素。这对我来说很好,这正是我想要它做的。 但是,我可以在源代码中看到 span 元素被包裹在 p 元素中。

<p><span id="cke_bm_147S" style="display: none;">&nbsp;</span>&nbsp;</p>

这给我带来了文本显示方式的问题,主要是在尝试浏览文档时。 我没有找到任何甚至提到创建这些p 元素的内容。我可以设置错误吗?有没有办法防止这些被创建?

谢谢

【问题讨论】:

    标签: ckeditor bookmarks ckeditor4.x


    【解决方案1】:

    span 书签是内联元素,因此它不能是内容的根元素。它被包裹在一个块元素中(默认是一个段落)。

    此行为取决于编辑器enterMode。如果它是默认的 - ENTER_P - 您将拥有一个 p 元素作为包装器。对于ENTER_DIV,您将拥有一个div 元素。对于ENTER_BR,将没有包装器,这意味着它是您想要实现的效果。

    检查这个codepen for demo

    请记住 enterModeENTER_P 不推荐使用 due to some caveats。因此,在您的情况下,最好重新考虑一些不同的解决方案,而不是更改enterMode

    【讨论】:

    • 非常感谢您回答这个问题。但是,正如您所怀疑的那样,这对我来说并不是真正的解决方案。老实说,我不确定你的意思是“跨度书签是一个内联元素,所以它不能是内容的根元素”。我提供的摘录只是文档的一部分,而不是整个文档。前后都有内容。
    • 在我写的第二段中有解释——通常(除非你使用ENTER_BR模式)内联元素需要被包裹在块元素中。内联元素不能是编辑器中的顶级元素。这就是你提到的p 元素的原因。这种方法不适合您的情况的原因是什么?
    • 您好,感谢您仍然关注此内容。我想我真的不明白什么是内联元素以及它成为根元素意味着什么。我应该将整个内容包装在 p 中以防止添加更多内容吗?它对我不起作用,因为我希望这些书签成为不可见的参考点,只能以编程方式访问。任何时候都自动添加 p,不仅会改变文档的外观,还会让您难以预测如何从一个书签导航到另一个书签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    相关资源
    最近更新 更多