繁体   English   中英

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

[英]Event listener 'Copy' doesn't work with "Copy Link Address"

我想修改剪贴板,使其成为正则表达式匹配。 这有效 - 只要我使用 Ctrl+C 或只是“复制”。 如果我单击“复制链接地址”(或“复制链接位置”),事件侦听器似乎根本看不到复制的内容。 这是屏幕录制: https : //i.stack.imgur.com/L4bQD.gif

我究竟做错了什么?

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

我找到了答案 - 这是故意的,正如文档在安全注意事项中所解释的那样:

使作者能够更改用户复制的内容,或自动复制从未选择的内容并允许不受限制地调用粘贴信息可能会引起各种安全问题。

一些示例场景包括:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM