我的要求:当用户从我的网页复制某些内容时,带有文本的一些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);在剪贴板中设置setData时,它将引发错误。

问题:

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();
});

10-06 07:40
查看更多