给Typecho博客添加JavaScript代码实现复制带版权信息的功能,当访客有意复制文章内容,会在剪切板上增加知乎体一般的版权信息(。・`ω´・)
代码如下
<script>
document.body.addEventListener('copy', function (e) {
if (window.getSelection().toString() && window.getSelection().toString().length > 42) {
setClipboardText(e);
// alert('商业转载请联系作者获得授权,非商业转载请注明出处哦~\n谢谢合作~(。・`ω´・)');
}
});
function setClipboardText(event) {
var clipboardData = event.clipboardData || window.clipboardData;
if (clipboardData) {
event.preventDefault();
var htmlData = ''
+ '著作权归作者所有。<br>'
+ '商业转载请联系作者获得授权,非商业转载请注明出处。<br>'
+ '作者:<?php $this->author() ?><br>'
+ '链接:' + window.location.href + '<br>'
+ '来源:<?php $this->options->siteUrl(); ?><br><br>'
+ window.getSelection().toString();
var textData = ''
+ '著作权归作者所有。\n'
+ '商业转载请联系作者获得授权,非商业转载请注明出处。\n'
+ '作者:<?php $this->author() ?>\n'
+ '链接:' + window.location.href + '\n'
+ '来源:<?php $this->options->siteUrl(); ?>\n\n'
+ window.getSelection().toString();
clipboardData.setData('text/html', htmlData);
clipboardData.setData('text/plain',textData);
}
}
</script>
食用方法
你可以直接放在你的主题文件夹下的footer.php
最后的一堆 script
之间就可以啦~当然如果考虑到用户体验的话建议只放在post.php
文件即文章内页php
文件
P.S.有一个弹窗功能觉得比较影响用户体验,所以马赛克掉了。想使用的话把注释符去掉就好了。
参考资料:
MDN
https://qqdie.com/archives/copyright-dog-fading-imitation-zhihu-copy-text-bring-their-own-copyright-statement.html