【问题标题】:Contenteditable div Remove <font>Contenteditable div 移除 <font>
【发布时间】:2013-07-11 20:10:20
【问题描述】:

我有一个 contentEditable div,默认字体大小为 14px。默认字体大小可以从自定义部分更改(13-15px)。

我添加了一个按钮来更改所选文本的字体大小。

nicEditors.findEditor('myInstance1').nicCommand('fontSize', '5');

按钮调用该函数:

nicCommand : function(cmd,args) {
  document.execCommand(cmd,false,args);
}

contentEditable div中的结果:

<font size="5">Such a</font>

它有效,但我找不到删除&lt;font&gt; 标签的方法。所以我尝试将 null 或 0 或 -1 或 2 或 3 放在 nicCommand 的参数中,但结果大小与其余部分不同。

是否可以从 contentEditable div 中删除或移动 &lt;font&gt; 标记?

在这种情况下移动:您可以让&lt;font size="5"&gt;Something 由猫控制。&lt;/font&gt;。用户选择“Something is”以从&lt;font size="5"&gt; 中删除“Something is”。在这种情况下,&lt;font size="5"&gt; 必须放在“is”之后。

【问题讨论】:

  • 显然您使用的是 NicEdit,所以我添加了该标签。
  • 你想得到什么? style="some px"?
  • @vladkras:我希望能够删除&lt;font size="5"&gt;这样的&lt;/font&gt;,它已经被一个按钮添加了。
  • 使用像样的所见即所得编辑器。这些将有自定义样式应用程序支持,绕过本机实现。

标签: javascript html contenteditable font-size nicedit


【解决方案1】:

document.execCommand 有一个我没见过的选项,它适用于 Firefox、Chrome 和 IE,removeformat

nicEditors.findEditor('myInstance1').nicCommand('removeformat', null)

这调用了那个函数:

nicCommand : function(cmd,args) {
  document.execCommand(cmd,false,args);
}

removeformat 允许删除所选文本的所有标签。此删除以及 &lt;b&gt; as &lt;i&gt; as &lt;u&gt; as &lt;font&gt;。这对我来说很好。 :-)

【讨论】:

    【解决方案2】:

    如果你只想删除它,请使用

    var reg = /<font\ssize="\d+">(.*?)<\/font>/g;
    str = str.replace(reg, "$1");
    

    str 是编辑器的内容

    demo

    【讨论】:

    • 问题是:你可以拥有这个&lt;font size="5"&gt;Something is control by a cat.&lt;/font&gt;。用户选择“Something is”以从&lt;font size="5"&gt; 中删除“Something is”。在这种情况下,&lt;font size="5"&gt; 必须放在 "is" 之后。
    • @defacto 你的问题是“我找不到删除 标签的方法”。你能澄清一下你真正需要做什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    相关资源
    最近更新 更多