如果我在 iframe 内创建了一个具有 contenteditable true 的 div,并且如果你双击它,它就会失效。焦点仍然在 iframe 中,你可以看到光标,但是它不响应 keydown
有谁知道我该如何克服这个问题?
编辑:
我已经实现了一个道场编辑器。如果您在 ipad 中打开此链接,您将看到上述问题。
如果我在 iframe 内创建了一个具有 contenteditable true 的 div,并且如果你双击它,它就会失效。焦点仍然在 iframe 中,你可以看到光标,但是它不响应 keydown
有谁知道我该如何克服这个问题?
编辑:
我已经实现了一个道场编辑器。如果您在 ipad 中打开此链接,您将看到上述问题。
您使用的是哪个操作系统?您应该确保您使用的是 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
。这可能是你的一个例子。
希望有帮助。
试图让一个可内容编辑的 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 时更清楚地知道发生了什么。如果您能找到一些更具体的错误消息,请更新我们。