13

我目前正在开发一个 contenteditable iframe,到目前为止,它可以在除移动 Safari 之外的所有浏览器下完美运行。我正在使用 iOS 5.1.1。该问题在任何支持 contentEditable 的 iOS 版本中都可以重现。

问题如下:当您点击内容时,内容正确聚焦,您可以移动光标和所有内容,但是一旦对其应用操作,就会发生以下情况:焦点仍在 iframe 中,您可以看到光标,但是它不像以前那样响应 keydown 。即使我移动光标并仍然尝试在其中键入任何内容,也没有任何反应。

下面是一个例子: http ://www.quirksmode.org/dom/execCommand/

如果您将 iframe 集中在内容内的任何位置并说您应用 text-align right。内容正确地向右对齐,但是如果您尝试输入任何其他字符,您会看到 ui 锁定,但光标所在的位置内没有出现新字符。如果您尝试应用不同的命令,它仍然可以工作。

有谁知道我如何解决这个问题?

4

3 回答 3

2

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

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

var iframe = document.getElementById ('the iframe Id ') ;
var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.designMode = "on";

当我阅读此方法中未发现跨浏览器问题时

如需完整参考,请参见此处

于 2014-03-06T11:30:34.490 回答
0

是否可以选择升级您的 iOS 版本?我刚刚使用 iOS 6.1 测试了您描述的所有条件,没有出现任何问题。

由于 iOS5 是第一个支持内容可编辑的 iOS Safari 版本,因此该实现很可能包含错误。似乎已经成熟了。

于 2013-03-04T22:39:48.260 回答
0

iOS 5.1.1 支持的 HTML5 功能非常少。将其更新到 iOS 7 后,它将完全正常工作。

于 2013-11-13T12:38:51.913 回答