事件侦听器“复制”不适用于“复制链接地址”

时间:2019-12-22 17:15:58

标签: javascript clipboard-interaction html5-clipboard-api

我想修改剪贴板,使其成为正则表达式匹配项。只要我使用Ctrl + C或仅使用“复制”,它就可以工作。如果单击“复制链接地址”(或“复制链接位置”),则事件侦听器似乎根本看不到复制的内容。

我在做什么错了?

<html>
<meta charset="ISO-8859-1">
<div class="source">
    <a href="https://www.example.com/example">https://www.example.com/example</a>
</div>
<div class="target" contenteditable="true">Copy the link above here</div>
</html>

<script>
    var regex = /\w{2,}.\w{2,}.\w{2,}/;

    document.body.addEventListener('copy', (event) => {
        const selection = document.getSelection();
        console.log(selection.toString());
        event.clipboardData.setData('text/plain', selection.toString().match(regex));
        event.preventDefault();
    });
</script>

1 个答案:

答案 0 :(得分:0)

我已经找到了答案-这是故意的,正如the documentation在安全注意事项中所述:

使作者能够更改用户复制的内容,或制作 从未选择并允许的东西的自动副本 不受限制地调用粘贴信息可以提高各种安全性 问题。

一些示例方案包括:

  • 用户选择一个链接并将其复制,但是将另一个链接复制到剪贴板。造成的影响可能范围从意外到 粘贴到尝试的“网络钓鱼”攻击的结果。