【问题标题】:document.execCommand not obeying CSSdocument.execCommand 不遵守 CSS
【发布时间】:2023-03-13 14:14:01
【问题描述】:

我有一个contentEditable <div>,我正在把它变成一个非常简单的文本编辑器。当按下“tab”时,使用document.execCommand('insertUnorderedList'); 创建一个项目符号点,效果很好。但问题是:

HTML:

<div id="wysiwyg">

</div>

CSS:

#wysiwyg{
    font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
    font-weight: normal;
    font-size: 0.9em;
    color: rgb(70,70,70);
}

#wysiwyg ul li {
    font-family: 'Calendas Regular', serif !important;
    font-size: 1em; 
}

当我使用 document.execCommand('insertUnorderedList'); 创建一个项目符号点时,它的样式就好像它只是我的 #wysiwyg 中的任何旧文本,而不是好像它是一个项目符号点,但是如果我插入一些初始文本 (通过 HTML,而不是通过使用 #wysiwyg 中的 contentEditable-ness),它会正确设置项目符号的样式。

有什么想法吗?

谢谢

【问题讨论】:

  • 我在 Safari 上测试这个,由于某种原因,浏览器在
  • 中插入了一个 标记,这似乎干扰了样式表。然而,它像往常一样在轻 DOM 中创建
  • @NicolasMcCurdy 是的,当我使用网络检查器查看 DOM 如何随新的 contentEditable 内容发生变化时,我也注意到了这一点......关于如何停止这个新的 标签的任何想法?或者至少改变使用它来设置正确的字体?
  • 不幸的是,这似乎是由基于 WebKit 的浏览器中的错误引起的(请参阅this answer)。我试过 Safari、Chrome 和 Firefox,问题只出现在 Chrome 和 Firefox 上。不幸的是,除了不添加样式、等待修复或删除额外的 HTML 之外,您无能为力。如果您想删除多余的 HTML,您可能会发现 Working around Chrome's contenteditable span bug 很有帮助。
  • 谢谢@NicolasMcCurdy,这太完美了。如果您将其发布为答案,那么我很乐意接受它:)
  • 标签: javascript jquery html css


    【解决方案1】:

    不幸的是,这似乎是由基于 WebKit 的浏览器中的错误引起的(请参阅 this answer)。我试过 Safari、Chrome 和 Firefox,问题只出现在 Chrome 和 Firefox 上。不幸的是,除了不添加样式、等待修复或删除额外的 HTML 之外,您无能为力。如果您想删除多余的 HTML,您可能会发现 Working around Chrome's contenteditable span bug 很有帮助。

    注意:这是从我的评论中复制的。

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签