6

contentEditable在我的网站上使用 div 标签,并且在使用 Firefox 时发现了一个奇怪的问题。

这是示例源代码:

<html>
  <head>
  </head>
  <body>
    <div contentEditable="true" style="margin-left:auto; 
         margin-right:auto; height:200px; width:200px; border-style:solid; 
         border-color:black; border-width:1px;"></div>
  </body>
</html>

以下是重现的步骤。

  1. contentEditable有焦点,光标在 div 中闪烁,但 div 中没有文本
  2. 用户点击contentEditable div
  3. div 仍然显示焦点,但现在没有闪烁的光标,用户无法在 div 中输入输入

我用 Ubuntu 上的 Firefox 3.6.3 和 Windows XP 上的 Firefox 3.5 重现了这个错误。Chrome不会发生这种情况。

关于为什么会发生这种情况以及如何解决它的任何想法?

编辑:一种可能的解决方法可能是手动设置光标所在的位置。有谁知道如何做到这一点?我一直在网上搜索,但似乎没有任何 W3 支持。

谢谢!

4

3 回答 3

3

我通过使用 UTF“零宽度空间”来修复它。在 PHP 中,它是以下转义的双引号:

"\xE2\x80\x8B"

然后您可以使用以下方法对其进行转义: trim($string, " \xE2\x80\x8B")

当这个不可见的字符被预加载到可编辑的 div 中时,这个 bug 就会消失。

我对我的页面和源文件(和数据库......一切)使用 UTF-8 编码

于 2010-10-04T08:16:23.393 回答
2

只需添加一个&nbsp;<div>.

于 2011-02-14T09:32:00.147 回答
1

我也遇到过,有时有效,有时无效。绝对是一个错误,我会说。您可以尝试插入一个隐藏字符,一旦出现一些文本,它似乎开始闪烁。

于 2010-08-11T14:39:37.370 回答