可以用JavaScript将文本直接发送到剪贴板吗

可以用JavaScript将文本直接发送到剪贴板吗,javascript,clipboard,Javascript,Clipboard,我知道可以通过getElementById将文本从DOM中的某种可编辑控件复制到JavaScript中的剪贴板(参见下面的链接)。但是可以直接从JavaScript字符串变量发送到剪贴板吗?我感兴趣的是在浏览器扩展中这样做,因此在这种情况下,JavaScript可能会有更多的安全限制 您说过要在浏览器扩展中执行此操作,因此,如果您已被授予该权限,您的扩展可以访问用户的剪贴板 看 请注意,在短期用户启动的事件(如单击事件)中使用copy命令不需要权限 document.execCommand(“复

我知道可以通过getElementById将文本从DOM中的某种可编辑控件复制到JavaScript中的剪贴板(参见下面的链接)。但是可以直接从JavaScript字符串变量发送到剪贴板吗?我感兴趣的是在浏览器扩展中这样做,因此在这种情况下,JavaScript可能会有更多的安全限制


您说过要在浏览器扩展中执行此操作,因此,如果您已被授予该权限,您的扩展可以访问用户的剪贴板

请注意,在短期用户启动的事件(如单击事件)中使用copy命令不需要权限

document.execCommand(“复制”)
但是,如果希望在访问用户剪贴板的方式和时间上有更多选项,则需要额外的权限。上面的同一页提到使用剪贴板API进行此操作

剪贴板API增加了更大的灵活性,因为您不仅限于将当前选择复制到剪贴板中,还可以直接指定要将哪些信息放置到剪贴板中

它们提供的功能正好满足以下要求:

函数更新主板(newClip){
navigator.clipboard.writeText(newClip).then(function(){
/*剪贴板已成功设置*/
},函数(){
/*剪贴板写入失败*/
});
}
以及另一个用于检查您是否具有写入剪贴板的权限的功能:

navigator.permissions.query({name:“剪贴板写入”})。然后(结果=>{
if(result.state==“已授予”| | result.state==“提示”){
/*立即写入剪贴板*/
}
});

您说过要在浏览器扩展中执行此操作,因此,如果您已被授予该权限,您的扩展可以访问用户的剪贴板

请注意,在短期用户启动的事件(如单击事件)中使用copy命令不需要权限

document.execCommand(“复制”)
但是,如果希望在访问用户剪贴板的方式和时间上有更多选项,则需要额外的权限。上面的同一页提到使用剪贴板API进行此操作

剪贴板API增加了更大的灵活性,因为您不仅限于将当前选择复制到剪贴板中,还可以直接指定要将哪些信息放置到剪贴板中

它们提供的功能正好满足以下要求:

函数更新主板(newClip){
navigator.clipboard.writeText(newClip).then(function(){
/*剪贴板已成功设置*/
},函数(){
/*剪贴板写入失败*/
});
}
以及另一个用于检查您是否具有写入剪贴板的权限的功能:

navigator.permissions.query({name:“剪贴板写入”})。然后(结果=>{
if(result.state==“已授予”| | result.state==“提示”){
/*立即写入剪贴板*/
}
});

我很确定这是不可能的。有一些库使用Flash实现了这一点,但这很快就会消失。@Barmar所以你想放在剪贴板上的任何东西都必须通过一个可编辑控件,对吗?我曾经使用过这个控件,效果很好:这里有一个关于与剪贴板交互的MDN页面:我很确定这是不可能的。有一些库使用Flash实现了这一点,但这很快就会消失。@Barmar所以你想放在剪贴板上的任何东西都必须通过一个可编辑的控件,对吗?我用过一次——效果很好:这是一个关于与剪贴板交互的MDN页面: