尝试运行这个简单的代码,为文本提供焦点,选择所有文本(CTRL + A),剪切它(CTRL + X),然后粘贴它(CTRL + V)。奇怪的是,文本没有被粘贴。为什么呢?
<span contenteditable="true" id="mytext">Hello world</span>
&#13;
如何在contenteditable
元素中启用正常的复制/剪切/粘贴功能?
注意:Firefox 32 / Win 7存在(至少)问题。不存在Chrome,IE10和Safari(在Windows上测试)。
答案 0 :(得分:1)
这是一个Firefox错误:
见https://bugzilla.mozilla.org/show_bug.cgi?id=858918
将粘贴复制到跨区时,它实际上会复制跨度本身,但不会复制包含的节点文本 您可以通过为跨度指定边框来查看它:
span {
border: 1px solid black;
}
<span contenteditable="true" id="mytext">Hello world</span>
作为解决方法,
您可能希望将span
更改为p
或其他不具有此功能的html标记。
:Aryeh Gregor现在应该正在努力,他已经发表了patches。
Ps:在Firefox 32.0.3上确认,在osx 10.9.5上每晚构建33.0
Pps:更奇怪:当您从span
复制文本并将其粘贴到div
(或其他非错误元素)并contenteditable="true"
时,它会添加换行符,而当粘贴到显示不可见的文本编辑器,它只粘贴复制的字符串。我不知道如何,但我的猜测是它将textNode
复制/粘贴为新的textNode
,被其他软件解释为string
。