【问题标题】:TinyMCE - exclude elementsTinyMCE - 排除元素
【发布时间】:2013-10-09 09:29:19
【问题描述】:

我想知道是否可以从 TinyMCE 的可编辑 DIV 中排除某些元素。这是一个示例代码:

<div class="editable-area">
    <h2>heading</h2>
    <p>paragraph</p>
    <div class="exclude-this-element"></div>
</div>

.exclude-this-element:empty:before { content: "Editable Area"; }

tinymce.init({
    inline: true,
    fixed_toolbar_container: '.toolbar'
});
tinyMCE.execCommand('mceAddEditor', false, '.editable-area');

问题是,当 TinyMCE 在 .editable-area 上初始化时,它会将 &lt;br&gt; 标签添加到 .exclude-this-elementEditable Area 文本停止出现。实际上,我认为整个.exclude-this-element 会在一段时间后被删除。 TinyMCE是否可以完全排除这个元素被改变?

我还想将一些操作(如 click 或 jQuery UI 函数)附加到 .exclude-this-element 并使其不干扰 TinyMCE。

我尝试了valid_childrenvalid_elementsinvalid_elements,但我认为这些都不能用来排除任何可编辑的元素(它只在保存编辑器的内容时​​排除它们):http://www.tinymce.com/wiki.php/Configuration

【问题讨论】:

    标签: javascript tinymce tinymce-4


    【解决方案1】:

    您可以使用内容可编辑方法

    http://www.tinymce.com/wiki.php/api4:property.tinymce.Env.contentEditable 还有

    不可编辑插件。此插件使具有 noneditable 类的元素 - 不可编辑

    http://www.tinymce.com/wiki.php/Plugin:noneditable

    编辑:

    尝试通过在 tinyMCE INIT 配置中添加这个来阻止 BR 元素:

     force_br_newlines : false,
     forced_root_block : "", 
     convert_newlines_to_brs: false, 
    

    如果 BR 标记出现在您从某处粘贴内容时出现在内容中,您也可以添加以下内容:

    paste_preprocess: function(pl, o) {
    o.content = o.content.replace(/<br><\/br>/gi, " ");
     }
    

    【讨论】:

    • 谢谢!该插件将data-mce-contenteditable="false" 添加到我的元素中,但TinyMCE 仍会在该元素中插入不需要的&lt;br&gt;,而我的:empty 选择器不起作用。
    • 好的!请参阅我的答案的编辑!
    • 我做了所有这些,但该元素仍然对我键盘上的“delete”键做出反应(但我不能在里面写,所以问题少了一个),它仍然在里面插入不需要的&lt;br&gt;。太糟糕了,这是不可能或不容易做到的,因为我想将 TinyMCE 与 jQuery UI Resizable 一起使用,但 TinyMCE 删除了我的可调整大小的句柄(它必须在可编辑的 DIV 内,因为 jQuery UI 强制这样做)。
    猜你喜欢
    • 1970-01-01
    • 2012-08-17
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2012-04-09
    • 1970-01-01
    • 2022-10-26
    相关资源
    最近更新 更多