复制粘贴在JavaScript中

Axo*_*onn 4 javascript clipboard copy-paste

这是一个古老的问题,但我仍然遇到麻烦.你看,我正在尝试将一些Excel数据粘贴到文本区域,但是这些愚蠢的浏览器在执行此操作时会长时间冻结,因为上帝知道他们做了什么"聪明"的解析.我无法摆脱它(文件上传是不可能的,我的老板希望我在文本区域中粘贴Excel中的行).

好消息是粘贴在标准文本框WORKS中.但我不能强迫他们粘贴那里.所以我试图捕获文本区域中的粘贴事件,然后将文本扔到文本框中.不幸的是,我在粘贴部分停了下来.我无法通过JS将文本粘贴到简单的文本框中.

所以我的问题是:如何粘贴文本,如何通过JS调用它?有一些解决方案只能在IE中运行,当然不是很好:) - ).

Ric*_*rtz 6

简单.

var isIe = (navigator.userAgent.toLowerCase().indexOf("msie") != -1 
            || navigator.userAgent.toLowerCase().indexOf("trident") != -1);

document.getElementById('textinput').addEventListener('paste', function(e) {
    var text;
    
    if (isIe) {
        text = window.clipboardData.getData('Text')   
    } else {
        text = e.clipboardData.getData('text/plain');
    }
    
    // Do whatever you want with the text
    console.log(text);
    
    //If you don't want the text pasted in the textarea
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
<textarea id="textinput"></textarea>
Run Code Online (Sandbox Code Playgroud)

如果你愿意,你甚至可以摆脱textarea并更直接地做到这一点.我写了一篇技术博客文章,解释了我们如何在Lucidchart(我工作的地方)进行复制和粘贴.