有些网站 ( 例如CSDN ) 为了维护版权信息, 用户在复制完成后, 发现粘帖出来的内容还会附加一些原文链接之类的来源信息,这个功能如何实现呢?
其实只需要添加一个oncopy
复制监听事件即可
代码如下:
document.oncopy = function addLink(e){
e.preventDefault();
//获取复制的文本内容
const selection = window.getSelection();
//获取当前网页地址
const localLink = document.location.href;
const appendLink = `\n\r 转载请注明出处:${localLink}`
const copyText = selection + appendLink;
if(e.clipboardData){
e.clipboardData.setData('text',copyText)
}else{
//在ie中 clipboardData是window的属性
window.clipboardData.setData('text',copyText);
}
}
这个方法的原理就是利用window .getSelection()
表示选中的文本内容, 再调用 clipboardData.setData()
方法将修改后的文本添加到剪切板