我的要求:当用户从我的网页复制一些内容时,文本中的一些 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/