8

如果我在 iframe 内创建了一个具有 contenteditable true 的 div,并且如果你双击它,它就会失效。焦点仍然在 iframe 中,你可以看到光标,但是它不响应 keydown

有谁知道我该如何克服这个问题?

编辑:

我已经实现了一个道场编辑器。如果您在 ipad 中打开此链接,您将看到上述问题。

4

2 回答 2

1

您使用的是哪个操作系统?您应该确保您使用的是 OS 5.0 或更高版本。根据(Apple's Technical Notes)和 Safari Web Content Guide。这个已经写完了:

iOS 5.0 及更高版本支持HTMLcontenteditable属性。在早期版本中, replacecontenteditable用于在样式元素中启用文本输入,并带有样式textarea元素。textarea在 Safari 中,您可以使用 CSS 自定义元素的外观。-webkit-appearance如有必要,您甚至可以通过设置为 none 来禁用 textarea 元素上任何特定于平台的内置样式。

因此,如果您使用的是旧操作系统版本,则可以使用textarea元素而不是contenteditable. 然后,可以保证您的应用程序也能正常工作。

PS。你可以用你的IPAD去这个网站,试试它是如何工作的textarea。这可能是你的一个例子。

希望有帮助。

于 2013-06-10T16:55:45.000 回答
1

试图让一个可内容编辑的 div 在 iframe 中工作是一个复杂的层次,如果你试图让它在一个特定的所见即所得编辑器(如 Dojo 编辑器)中工作,则是另一个更难的层次,因为有很多 JavaScript 影响的相互作用。这将有助于更好地解释您的问题中的参数。

您是否使用过浏览器调试器(如 Firebug)来查看单击时发生的情况?

This other SO question and answer about contenteditable div vs iframe很有用。

最后,如果您使用的是 iOS Safari,请确保您使用的是 Safari 5.0 或更高版本,因为该浏览器最近才支持contenteditable 属性。

编辑: 由于您使用的是 iOS 6,因此您应该使用iOS Safari JavaScript 调试器来让您在单击可编辑 div 时更清楚地知道发生了什么。如果您能找到一些更具体的错误消息,请更新我们。

于 2013-06-10T16:32:06.317 回答