在悬停时复制到剪贴板

时间:2016-09-08 11:30:36

标签: javascript javascript-events copy-paste

我正在尝试在悬停时将文本复制到剪贴板,并注意到它只适用于点击(document.body.addEventListener('click', copy, true);),但是当您尝试在悬停时触发复制时它不起作用(document.body.addEventListener('mouseover', copy, true);) 。我正在玩这个example并且想知道为什么会这样。

1 个答案:

答案 0 :(得分:3)

document.execCommand需要用户事件才能运行。它不会在悬停时起作用,但它会在点击之类的东西上发挥作用(mousedown,mouseup等)。

您仍可能需要检查兼容性(here)。请参阅this original answer和(this)jsFiddle。现在浏览器似乎一直支持它,但你仍然需要确保你想要在表格中定位这些版本。

$('.big').hover(function () {
    // will not work, no user action
  $('input').select();
    document.execCommand('copy');
});

$('.big').mousedown(function () {
    //works
  document.execCommand('copy');
});
  

从document.execCommand()触发的复制命令只会影响真实剪贴板的内容,前提是从用户信任和触发的事件调度事件,或者实现配置为允许此事件。如何配置实现以允许对剪贴板的写访问超出了本规范的范围。