Firefox中contentEditable div内的CTRL-A选择div本身

时间:2010-08-25 19:19:03

标签: html firefox copy-paste contenteditable

我一直在试着找出解决这个问题的最佳方法。也许有人会玩得很开心。

我有一个div,其contentEditable =“true”几乎适用于所有内容。当用户使用CTRL-A选择所有内容然后复制/粘贴时,Firefox中有一个例外。选择操作包括div本身的标签!据我所知,这个bug本来是由Mozilla修复的,但事实并非如此。 div只是不断粘贴在自己内部。

一旦用户复制了剪贴板,我就开始编辑剪贴板了,但除非你使用flash,否则Firefox似乎对它不太友好,这是不太理想的。当用户进行粘贴时,我还想到在另一端捕获有问题的标签,但粘贴事件会在任何javascript事件处理程序完成后将实际文本放入div中。有没有办法在发生之前编辑正在粘贴的文本?

1 个答案:

答案 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。在其他浏览器中,它默认工作正常。