4

使用 ctrl+c 复制网站数据时,是否可以将自己的消息写入剪贴板?我发现了一些清除剪贴板的 Javascript - 很高兴知道是否有一些东西可以写入它,即将剪贴板中的文本替换为“请使用我们网站的印刷版”之类的内容。

  function clearData() {
    window.clipboardData.setData('text', '')
  }

  function cldata() {
    if (clipboardData) {
      clipboardData.clearData();
    }
  }
  setInterval("cldata()", 1000);
<body ondragstart="return false;" onselectstart="return false;" oncontextmenu="return false;" onload="clearData();" onblur="clearData();">

  <h1>Example text</h1>
<input type="text">

4

6 回答 6

3

你不能纯粹通过 JavaScript 来做到这一点。

剪贴板的 JavaScript 编辑被认为是一个安全漏洞(对此有更多的讨论)。

您可以通过使用 Flash 进行剪贴板访问与 JavaScript 交互的黑客来做到这一点。

于 2013-05-25T16:32:29.197 回答
0

  function clearData() {
    window.clipboardData.setData('text', '')
  }

  function cldata() {
    if (clipboardData) {
      clipboardData.clearData();
    }
  }
  setInterval("cldata()", 1000);
<body ondragstart="return false;" onselectstart="return false;" oncontextmenu="return false;" onload="clearData();" onblur="clearData();">

  <h1>Example text</h1>
<input type="text">

于 2021-01-06T12:44:45.313 回答
0

您无法清除用户的剪贴板历史记录。但,

您可以用其他东西替换他们的剪贴板

navigator.clipboard.writeText(" ");

或者你可以制作一个脚本,每当他们试图复制某些东西时,它就会停止它。

document.addEventListener('copy', function(e){
    e.preventDefault();
})
于 2022-01-05T23:41:03.177 回答
0

您可以放置​​以下内容:

$( document ).ready(function() {
    if (event.ctrlKey && event.keyCode == 67) {
        var inputFieldClear = document.createElement("input");
        inputFieldClear.setAttribute("value", "Insert Default Value Here");
        document.body.appendChild(inputFieldClear);
        inputFieldClear.select();
        document.execCommand('copy');
        inputFieldClear.remove();
        console.log("Attempting to Alter Clipboard")
}});

这适用于 TamperMonkey 之类的东西——不确定它是否可以合并到站点源中。

希望能帮助到你!:)

于 2018-09-26T19:37:45.440 回答
0

您无法清除剪贴板数据,因为没有相应的功能。

删除它的最佳方法是分配空值。

IE

navigator.clipboard.writeText("");
于 2021-08-11T05:08:55.467 回答
-1

是的,你可以。基本技巧是检测用户何时按住 Control,并在页面上选择不同的文本。

于 2014-04-15T18:03:01.493 回答