我正在尝试在悬停时将文本复制到剪贴板,并注意到它只适用于点击(document.body.addEventListener('click', copy, true);
),但是当您尝试在悬停时触发复制时它不起作用(document.body.addEventListener('mouseover', copy, true);
) 。我正在玩这个example并且想知道为什么会这样。
答案 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()触发的复制命令只会影响真实剪贴板的内容,前提是从用户信任和触发的事件调度事件,或者实现配置为允许此事件。如何配置实现以允许对剪贴板的写访问超出了本规范的范围。