Javascript在1分钟后清除剪贴板
我当前正在使用以下代码将文本复制到剪贴板:Javascript在1分钟后清除剪贴板,javascript,clipboard,Javascript,Clipboard,我当前正在使用以下代码将文本复制到剪贴板: navigator.clipboard.writeText(element.value).then(function() { /* clipboard successfully set */ }, function() { /* clipboard write failed */ console.log('Copy to clipboard failed!'); }); 如果数据成功复制到剪贴板,我需要在1分钟后自动清除剪贴板
navigator.clipboard.writeText(element.value).then(function() {
/* clipboard successfully set */
}, function() {
/* clipboard write failed */
console.log('Copy to clipboard failed!');
});
如果数据成功复制到剪贴板,我需要在1分钟后自动清除剪贴板
我尝试使用setTimeout()
方法,但从setTimeout
调用时,写入剪贴板失败
另外,如果我使用execCommand('copy')
方法,我会得到以下错误:
document.execCommand('cut'/'copy')被拒绝,因为它不是从短时间运行的用户生成的事件处理程序内部调用的。
我正在努力使它在Firefox中工作
我试图将代码放入setTimeout()中,如下所示:
setTimeout(function() {
navigator.clipboard.writeText('').then(function() {
/* Successfully cleared clipboard */
}, function() {
/* Failed to clear clipboard */
}
}, 60000);
Firefox要求命令来自用户事件,如单击。这就是为什么处理程序不起作用。(你不会想要一些流氓javascript在那里粘贴数据,对吧?) 确切的措辞是命令必须从中调用 短时间运行的用户生成的事件处理程序 权变措施 1个虚拟
输入元素
和文档.execCommand(“复制”)
使用具有单个空格作为值的虚拟输入元素,以及不同的API来选择并将其复制到剪贴板
函数clearClipboardFromSetTimeout(){
//这应该行得通,但行不通
//if(document.selection)document.selection.empty()
//else window.getSelection().removeAllRanges()
//创建要选择的虚拟输入
var tempElement=document.createElement(“输入”);
tempElement.style.cssText=“宽度:0!重要;填充:0!重要;边框:0!重要;边距:0!重要;轮廓:无!重要;框影:无!重要;”;
document.body.appendChild(tempElement);
tempElement.value=''//空字符串无效!
tempElement.select();
文件。执行命令(“副本”);
document.body.removeChild(tempElement)
}
函数doIt(){
navigator.clipboard
.writeText(“你好”)
.然后(=>
navigator.clipboard.readText()然后(text=>console.log(“before”,text))
);
设置超时(()=>{
clearClipboardFromSetTimeout()
navigator.clipboard.readText().then(text=>console.log(“after”,text));
}, 2000);
}
该代码段在Firefox中不起作用,但clearClipboardFromSetTimeout方法会起作用。
在setTimeOut中设置然后清除
是否使用Firefox?如果没有用户的直接交互,您可能无法操作剪贴板的内容。请包含失败的setTimeout
代码。@HarryCutts我已经添加了我试图在setTimeout内执行的代码。@Carcigenicate是的,我正试图使其与Firefox一起工作。我所寻求的是一个工作环境,因此它可以与Firefox一起工作。对于我的web应用程序,我需要在1分钟后清除剪贴板上复制的文本。我真的不希望使用Flash。请详细说明保存单击上下文并在以后使用它的第二种方法好吗?@Pratanumadal我添加了另一种解决方法,并将添加一个指向该方法的链接。@Pratanumadal我发现了一些东西。阅读我的第一个变通方法。它“几乎清晰”,因为剪贴板中有一个空格。您提供的代码不适用于我。事实上,我已经试过了,以前也没用过。你能检查一下吗?你正在为你的网页提供https服务吗?