【问题标题】:tinyMCE add class to the automatic <p> tagtinyMCE 将类添加到自动 <p> 标签
【发布时间】:2012-11-14 20:22:40
【问题描述】:

在 tinyMCE 编辑器中,我自动输入的文本用&lt;p&gt; 包裹,这很好。我只想为&lt;p&gt; 添加一个类。

注意:我不想为所有 p 元素添加一个类,只是用户单击并开始输入的那个。

非常感谢任何帮助。

【问题讨论】:

  • 更新:在 tinyMCE 编辑器中,我自动输入的文本用 包裹,这很好。我只想为那个

    添加一个类。注意:我不想为所有 p 元素添加一个类,只是用户单击并开始输入的那个。任何帮助都非常感谢。

  • 你指的是哪个p标签,文本本身是放在一个iframe中

标签: jquery tinymce


【解决方案1】:

您应该为此目的使用 tinymce javascript API:

editor = tinymce.get('your_editor_id');
$(editor.selection.getNode()).parents('p:first').addClass('your_class');

这是一个非 jquery 的解决方案:

editor = tinymce.get('your_editor_id');
editor.selection.getNode().closest("p:first").setAttribute("class", "your_class");

【讨论】:

  • 你有非 jquery 版本? (vue) 但是普通的 js 也可以
  • 谢谢,您是否也知道自动执行此操作的选项,就像每个 P 默认情况下始终具有该类?我不想将默认 CSS 属性附加到 html 标记本身,因为这可能会在其他地方弄乱一些东西并且不好维护?
  • @Badgy:afaik 可以给 ditor 中的所有段落一个类。另一种选择是设置您的 globas tinymce css,以便您的段落的样式就像他们有那个类一样。在第二步中,您可以在保存编辑器内容之前为所有段落提供特殊类别。
【解决方案2】:

试试这个:

var tmceIframe = $(".mceIframeContainer iframe")[0].contentDocument || $(".mceIframeContainer iframe")[0].contentWindow.document;

$(tmceIframe).find("p").addClass("test")

或一行:

$($("iframe")[0].contentDocument || $("iframe")[0].contentWindow.document).find("p").addClass("test")

在第二个示例中,我通过直接进入 iframe 使其更短,但是,如果您在页面上有多个 iframe,这可能是一个问题,您可能希望使用元素 id 来指定,例如包装器

【讨论】:

    猜你喜欢
    • 2012-11-30
    • 1970-01-01
    • 2014-09-24
    • 2013-04-19
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2015-01-29
    相关资源
    最近更新 更多