事件侦听器'Copy'不适用于"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>

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

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

一些示例方案包括:

  • 用户选择一个链接并复制它,但另一个链接将复制到剪贴板。其影响可能来自意想不到的 粘贴到尝试的"网络钓鱼"攻击的结果。

最新更新