清除剪贴板以禁止未经授权的复制,插入消息

Clear clipboard to prohibit unauthorised copying, insert message?

本文关键字:复制 插入 消息 授权 剪贴板 禁止 清除      更新时间:2023-09-26

是否可以在使用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">

你不能完全通过JavaScript来实现。

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

你可以通过使用Flash与JavaScript交互来访问剪贴板。

无法清除剪贴板数据,因为没有此功能。

最好的方法是给它赋空值。

ie

navigator.clipboard.writeText("");

您可以放置以下内容:

$( 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这样的东西中工作-不确定它是否可以合并到网站的源代码中。

希望有帮助!:)

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

不能清除用户的剪贴板历史记录。但是,

你可以把他们的剪贴板换成其他的东西,比如

navigator.clipboard.writeText(" ");

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

document.addEventListener('copy', function(e){
    e.preventDefault();
})

可以。基本的技巧是,当用户按住Control时,您可以检测到,并在页面上选择另一段文本。