javascript - 复制事件后修改剪贴板内容 : JavaScript, jQuery

标签 javascript jquery html clipboard clipboarddata

我的要求:当用户从我的网页复制一些内容时,文本中的一些 HTML 标签和回车符也会被复制。我需要修改剪贴板中复制的内容,即删除回车和 HTML 标记。

到目前为止我尝试了什么: 我什至使用 jQuery 捕获了副本并获取了剪贴板的内容。请参见下面的代码。

$(document).bind('copy', function () {
      //getting clipboard content
      var selectedText = window.getSelection().toString();

      //removing carriage retun from content
      selectedText = selectedText.replace(/<\/?[^>]+(>|$)/g, "");

      //Trying to set data in clipboard
      window.clipboardData.setData(selectedText); //Throws error
}

现在,当我尝试使用 window.clipboardData.setData(selectedText); 在剪贴板中设置数据时,它会抛出错误。

问题:

1) 我是否使用了正确的函数,即 setData() 来修改剪贴板内容?

2) 谁能告诉我如何在这里修改剪贴板的内容?

最佳答案

当前接受的答案过于复杂,并导致用户的选择在复制后被删除的奇怪行为。

这里有一个更简单的解决方案:

document.addEventListener('copy', function(e){
  var text = window.getSelection().toString().replace(/[\n\r]+/g, '');
  e.clipboardData.setData('text/plain', text);
  e.preventDefault();
});

关于javascript - 复制事件后修改剪贴板内容 : JavaScript, jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42089713/

相关文章:

javascript - div溢出时div最大宽度交替

html - JQuery - 单选按钮 CSS 提交后不刷新

javascript - 是否可以显示数据库中的博客数据(pdf)和其他结果(字符串)

javascript - 加载脚本时显示 'Loading' 图标

javascript - 带有四个子 div 的头部 div

javascript - 使用 jQuery 从二维数组中检查多个复选框

javascript - 如何检查对象属性?

javascript - jQuery 动画 img margin-top

javascript - 如何在发送前将数据附加到 XHR 请求?

javascript - 如何使用 jquery 处理 google recapcha?