我正在尝试捕获复制事件并使用一些信息更新剪贴板。以下是我正在尝试的,它工作正常,除非用户尝试使用右键单击 -> 复制选项进行复制。这不仅不起作用,而且也不允许基本的复制操作。
<h1 onCopy="dosomething()">
blah1 lorem ispum eng auf
</h1>
<script type="text/javascript">
function dosomething() {
var selection = window.getSelection().toString();
var formattedSelection = selection.trim() + "-random";
var textarea = document.createElement('textarea');
console.log("f=", formattedSelection);
textarea.textContent = formattedSelection;
textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in MS Edge.
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
};
</script>
有人可以帮我找出我在这里可能做错了什么吗?在这里准备了一个 jsfiddle 以便于调试 - https://jsfiddle.net/a74x41rk/
编辑 -
我让它与 setTimeout 一起工作,但仍然不知道为什么。
setTimeout(function(){
document.execCommand('copy');
document.body.removeChild(textarea);
});
更新的小提琴 - https://jsfiddle.net/a74x41rk/1/