在contentEditable中删除生成的内联样式,同时在Chrome中保留原始选择

时间:2014-03-25 09:31:27

标签: javascript html google-chrome contenteditable

我的页面上有一个内容可编辑的元素,虽然它在某种程度上可以解决我在谷歌Chrome浏览器中遇到的一些问题,因为它似乎有时会将元素包含在带有内联样式的span元素中,这特别令人恼火

如果我打电话

document.execCommand("removeFormat", false, null);

在块/段转换后,它确实删除了这些跨度。但是有两个主要问题:

  1. 它还删除了选择中的斜体和粗体格式(虽然我想我可以忍受)
  2. 它只删除选择中的格式,但是如果你运行一些块格式化(如(un)有序列表),则不仅仅是选择被格式化,选择之外的所有内容仍然保留span的内联样式。 / LI>

    您可以在this JSFiddle中观察此行为(使用谷歌浏览器打开)。

    我以为我能做什么

    所以我认为我可以做到以下几点:

    1. 当我想做一些块格式化时,我修改选择以包括整个段落/文本行
    2. 格式化
    3. 删除选择中的格式
    4. 恢复原始选择
    5. 但我一直遇到#4的问题,因为原始选择节点已经在那些不再存在的span元素中,所以我无法恢复我的选择。

      我该如何解决这个问题?

      问题TLDR

      当您选择部分行并将其设为(非)有序列表时,Google Chrome会将span元素插入内嵌样式。

      我希望在保留原始选择的同时删除带内联样式的刺激性跨度。

0 个答案:

没有答案