如何等待剪贴板动作?

在我的Google Chrome浏览器扩展程序中,我想在用户按下CTRL + C或CTRL + X时执行某项操作,因此基本上是每当他们剪切或复制文本时。按下这些键时不触发事件不是问题,但是行为是:复制工作正常,除了取消选择文本这一事实外,但剪切效果更差。它会复制标记的文本,但不会剪切/删除文本,只是像选择复制功能一样取消选择文本。


我在这里做错了什么?在使用剪贴板内容之前,我是否需要等待剪切功能完成?


这就是我所拥有的,包括一个应该延迟脚本执行的功能(显然不起作用):


function doAdelay(){

    setTimeout(function(){return true;},30000);

};


var map = {};

onkeydown = onkeyup = function(e) {

  map[e.keyCode] = e.type == 'keydown';


    if(map[17] && (map[67] || map[88])) { // CTRL + C or X

        doAdelay();


        var copiedText = window.getSelection().toString();

        var tempTextArea = document.createElement('textarea');

        tempTextArea.setAttribute('readonly', '');

        tempTextArea.style.position = 'absolute';

        tempTextArea.style.left = '-9999px';

        document.body.appendChild(tempTextArea);


        tempTextArea.value = copiedText;

        tempTextArea.select();

        document.execCommand("copy");

        document.body.removeChild(tempTextArea);

    }

}


富国沪深
浏览 175回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript