Google chrome Chrome空内容保留样式

Google chrome Chrome空内容保留样式,google-chrome,contenteditable,Google Chrome,Contenteditable,当我在页面中有一个contenteditable部分时,Chrome似乎在做一些奇怪/有趣/令人困惑的事情。 如果您有一段文字是用(可能是其他标记,我不知道)包装的,该段文字应用了一个类,该类对文字应用了其他样式(字体系列、颜色等),然后删除可编辑段中的所有文字。当您再次开始键入时,文本看起来与您开始删除文本时相同,但似乎是使用原始计算CSS进行样式设置,而不是使用适当的类进行跨度设置 你知道为什么会这样,或者我能不能关掉它?Firefox和IE似乎都保持了与类的同步 这就是我的开始 <

当我在页面中有一个contenteditable部分时,Chrome似乎在做一些奇怪/有趣/令人困惑的事情。 如果您有一段文字是用
(可能是其他标记,我不知道)包装的,该段文字应用了一个类,该类对文字应用了其他样式(字体系列、颜色等),然后删除可编辑段中的所有文字。当您再次开始键入时,文本看起来与您开始删除文本时相同,但似乎是使用原始计算CSS进行样式设置,而不是使用适当的类进行跨度设置

你知道为什么会这样,或者我能不能关掉它?Firefox和IE似乎都保持了与类的同步

这就是我的开始

<span class="level1" style="font-weight:bold;">This is level'd text</span>

我明白发生了什么,它试图表现得像文字和其他处理器一样,保留你的风格;但是,这些级别在我们的编辑器中很重要,应该保留。如果他们不能,我宁愿关闭这个“功能”。

防止Chrome保留插入符号位置的旧计算样式的一种方法是清除浏览器选择,然后恢复它(保留选择)。这应该在删除样式化元素之后和插入新内容之前完成。在以下行中执行某些操作:

let selection=window.getSelection();
if(selection&&selection.rangeCount>0&&selection.iscollected){
让range=selection.getRangeAt(0);
selection.removeAllRanges();
选择。添加范围(范围);
}

很有趣。我不知道答案。似乎没有可通过
document.execCommand()
更改此行为的命令,因此您可能会被迫手动删除这些样式。Webkit的样式范围非常糟糕。完全是胡说八道。我不知道这种情况,但我知道这些跨度来自剪贴板,我最近在CKEditor中重写了它的实现,我不知道如何摆脱它们。我刚刚检查了CKEditor是否也会遇到与可编辑元素相同的问题,但是它不太可见,并且不是每个样式内联元素在删除其内容后都会恢复。有趣和令人担忧的行为:|。另外,您始终可以编写自定义删除键实现;)。PS.Webkit不仅将样式从样式表移动到内联元素,而且还将
替换为
:D。有人故意这样做;|。我把这张票添加到了bugs.webkit.org上。我还发现了一张类似的票。你有没有找到解决办法?(如何不保留风格?)因为3年后,问题似乎依然存在。
<span style="color: rgb(255, 255, 255); font-family: helvetica, arial, sans-serif; font-size: 48.18181610107422px; font-weight: bold;">This is level'd text</span>
.editable .level1 {
    color: #fff;
    font-size:3em;
    font-family:helvetica, arial, sans-serif;
}