如何在iOS 5/iOS 6下使contentEditable工作

Kon*_*nev 13 javascript html5 mobile-safari ios5 ios6

我目前正致力于一个令人满意的iframe,到目前为止,除了移动Safari之外,它在所有浏览器下都能正常运行.我使用的是iOS 5.1.1.该问题在任何支持contentEditable到最新版本的iOS版本中都是可重现的.

问题如下:点击它时内容得到正确聚焦,你可以移动光标和所有内容,但是一旦你对其应用了一个动作,就会发生以下情况:焦点仍在iframe中,你可以看到光标但是它没有像以前那样对keydown做出反应.没有任何事情发生,即使我移动光标仍然尝试在里面输入任何东西.

以下是发生的事情的示例:http: //www.quirksmode.org/dom/execCommand/

如果您将iframe的焦点集中在内容中的任何位置,并说您正确应用text-align.内容与右侧正确对齐,但如果您尝试键入任何其他字符,则可以看到ui锁定,但光标所在的内部不会出现新字符.如果您尝试应用其他命令,它仍然可以工作.

有没有人知道如何解决这个问题?

mah*_*han 2

您可以简单地使用 Iframes 设计模式而不是 contenteditable 属性来使任何 HTML 元素可编辑。

使 iframe 中的元素可编辑的 javascript 代码是:

var iframe = document.getElementById ('the iframe Id ') ;
var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.designMode = "on";
Run Code Online (Sandbox Code Playgroud)

据我了解,此方法中没有发现跨浏览器问题

完整参考请参见此处