我正在尝试捕获复制事件并使用一些信息更新剪贴板。以下是我正在尝试的,它工作正常,除非用户尝试使用右键单击复制 - >复制选项。这不仅不起作用,而且也不允许基本的复制操作。
<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/