剪切/粘贴从/到适合自身在Firefox中不起作用

时间:2014-09-26 10:50:29

标签: html html5 copy-paste contenteditable

尝试运行这个简单的代码,为文本提供焦点,选择所有文本(CTRL + A),剪切它(CTRL + X),然后粘贴它(CTRL + V)。奇怪的是,文本没有被粘贴。为什么呢?



<span contenteditable="true" id="mytext">Hello world</span>
&#13;
&#13;
&#13;

如何在contenteditable元素中启用正常的复制/剪切/粘贴功能?

注意:Firefox 32 / Win 7存在(至少)问题。不存在Chrome,IE10和Safari(在Windows上测试)。

1 个答案:

答案 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