使用超时时,document.execCommand“ copy”无法正常工作

问题描述

如问题标题所述,我在应用程序中使用window.setTimout。这是详细的说明。当用户单击按钮时,我调用一个函数,将需要复制的值传递到剪贴板,在30秒后,我需要清除剪贴板。在搜索互联网时,我发现无法清除剪贴板数据,因此我正在调用一个函数来选择和复制“空白”值。这是代码

function copyToClipboard(value,e){
    var abc = document.createElement("input");
    abc.setAttribute("value",value);   
    document.body.appendChild(abc);
    abc.select();
    document.execCommand("copy");
    document.body.removeChild(abc);
    
    setTimeout(clearClipboard,30000);
}

function clearClipboard(){
    var def = document.createElement("input");
    def.setAttribute("value",' ');
    document.body.appendChild(def);
    def.select();
    document.execCommand("copy");
    document.body.removeChild(def);

    console.log('clipboard cleared!');
}

执行此代码时,传递的值将按预期复制到剪贴板,但是30秒钟后,clearClipboard方法未按预期清空剪贴板。还有一件事!当我将计时器设置为3秒时,它突然开始按预期工作并清除了剪贴板!帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)