我在我一直在处理的 Web 应用程序中遇到了一个奇怪的错误,我能够在 Chrome 和 Safari 中重现,但不能在 Firefox 中重现。
要查看错误,请访问www.lastcalc.com并输入一个大写字符。通过 DIV.question 上的“keydown”事件的侦听器(contentEditable 设置为 true 的 DIV),该字符将立即以白色“按钮”css 突出显示。这由 locutus.js 中的 highlightSyntax 函数执行,并依赖 Rangy 库在突出显示期间跟踪光标位置。
到目前为止一切顺利,但现在点击删除。突然在 Safari 中出现以下结构,光标位于中间的 br 元素(视觉上文本居中并获得颜色 #606060):
<div style="text-align: center;">
<font class="Apple-style-span" color="#606060">
<span class="Apple-style-span" style="font-size: 14px;">
<br/>
</span>
</font>
</div>
在 Chrome 中略有不同:
<div style="text-align: center;">
<font color="#606060">
<span style="font-size: 14px;">
<br/>
</span>
</font>
</div>
据我所知,我的代码中没有创建任何这些元素,但它们出现了。在我的代码中唯一提到#606060 颜色的地方是在“white”类的定义中的highlighting.css 中,该类是分配给“span”元素的类,当我按退格键时该元素将被删除。
似乎这里发生了某种浏览器巫术,但不知何故出了问题 - 任何人都可以对此有所了解吗?
附言。如果有人想知道这个网站是什么,您可以在这里找到更多信息。
编辑:经过一些谷歌搜索,这似乎是webkit 中的一个错误,所以现在的问题是:我该如何解决它?