我的要求:当用户从我的网页复制某些内容时,带有文本的一些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();
});