2

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

<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/

4

0 回答 0