复制页面内容添加版权声明

现如今,如果你要直接复制简书、掘金、CSDN 等网站上文章的内容,当你粘贴的时候就会发现,复制的文字中多了几行版权信息。

通常是这样的内容:

作者:【作者名】
链接:【当前网页链接】
来源:【站点名】
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处


实现方式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 确定好会添加版权信息的复制范围,在类名为 post-body 的 dom 元素内
var copyPreventContent = document.querySelector('.post-body')
copyPreventContent.addEventListener('copy', function(e) {
// window.getSelection()返回一个 Selection 对象,此对象表示用户选择的文本范围或插入符号的当前位置
// 调用 Selection 对象的 toString() 函数,会返回被选中区域中的纯文本
var finalCopyContents = window.getSelection().toString()
if(finalCopyContents) {
var finalCopyContents = finalCopyContents +
"\n\n作者:【 作者名 】" +
"\n链接:【 当前页面链接 】" +
"\n来源:【 当前站点名字 】" +
"\n著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处"

// 调用 setData() 方法,复制 clipboardData 的内容到到剪切板
e.clipboardData.setData('text/plain', finalCopyContents)
e.clipboardData.setData('text/html', `<b>${finalCopyContents}</b>`)
e.preventDefault()
}
})


参考资料:

MDN: copy
MDN: Selection

好饿,想吃两个小饼饼(# ̄y▽ ̄)╭
0%