【发布时间】:2012-03-08 09:52:46
【问题描述】:
我们知道可以在 DIV 中设置 contenteditable 以允许可编辑。它可以像Textarea一样。
然而最大的不同是“内容复制和粘贴”到 DIV 和 Textarea。
DIV 允许 html/plain 但 Textarea 仅提供纯文本。
以下是解决这些问题的方法:-
Method 1 - Direct using window.clipboardData.getData('Text') ( will prompt for asking permission).
问题:Mozilla 和 chrome 不支持剪贴板数据。
方法 2 - 使用闪存。
问题:Flash v.10 已升级到新规则,在没有用户先初始化的情况下无法获取剪贴板数据。
方法 3- 使用“onpaste”事件。当数据粘贴到 div -> 设置焦点时 在隐藏的 textarea -> 从隐藏的 textarea 中获取值并设置为 div 通过使用 setTimeout -> 清除隐藏的文本区域。
问题:隐藏文本区域的时间设置值不一致。
我看到谷歌在这方面做得很好。
对于 IE,使用剪贴板数据。
对于 Mozilla,其他(不支持 html5) - 有人知道谷歌是如何做到的吗?
提示:使用 iframe 设计模式?
对于 Chrome(支持 html5) - 只需将 DIV 设置为 Contenteditable="plaintext-only"。
【问题讨论】:
标签: javascript html plaintext