我一直在试着找出解决这个问题的最佳方法。也许有人会玩得很开心。
我有一个div,其contentEditable =“true”几乎适用于所有内容。当用户使用CTRL-A选择所有内容然后复制/粘贴时,Firefox中有一个例外。选择操作包括div本身的标签!据我所知,这个bug本来是由Mozilla修复的,但事实并非如此。 div只是不断粘贴在自己内部。
一旦用户复制了剪贴板,我就开始编辑剪贴板了,但除非你使用flash,否则Firefox似乎对它不太友好,这是不太理想的。当用户进行粘贴时,我还想到在另一端捕获有问题的标签,但粘贴事件会在任何javascript事件处理程序完成后将实际文本放入div中。有没有办法在发生之前编辑正在粘贴的文本?
答案 0 :(得分:2)
实际上它是FireFox浏览器问题。您可以使用以下函数来解决问题。
function disableCtrlKeyCombination(event){
var keyCode = event.keyCode;
if (event.ctrlKey && keyCode==86) { //CTRL+V
event.preventDefault();
document.getElementById("divId").textContent = system.getClipboard().getData("text");
return false;
} else if (event.ctrlKey && keyCode==67) { //CTRL+C (Copy)
event.preventDefault();
system.getClipboard().setData("text",document.getElementById("divId").textContent);
return false;
} else {
return true;
}
}
注意:这仅适用于Firefox。在其他浏览器中,它默认工作正常。