js实现复制内容自动添加版权信息
场景:当我从网上复制了所需代码到编辑器粘贴时,总会有如下版权信息提示

看到好几次后,在好奇心的驱使下开始搜寻答案。网上有好几种写法,最开始我找到了如下JS代码
document.body.oncopy = function() {
setTimeout(
function() {
var text = clipboardData.getData("text");
if(text) {
text = text + "\r\n本文来自: (www.jb51.net) 详细出处参考:" + location.href;
clipboardData.setData("text", text);
}
}, 100)
}
但这种方法经过测试,会报错,如下图

后来终于被我找到下面的JS代码,亲测可用,附上截图和代码

function addLink() {
var body_element = document.body;
var selection;
//var selection = window.getSelection();
var blogName = '[ 何海宝的博客 ]'; // 此处修改成你自己网站的名称
selection = window.getSelection() ? window.getSelection() : document.selection.createRange().text;
if(window.clipboardData) { // Internet Explorer
var pagelink = "\r\n\r\n 原文出自" + blogName + " 转载请保留原文链接: " + document.location.href + "";
var copyText = selection + pagelink;
window.clipboardData.setData("Text", copyText);
return false;
} else {
var pagelink = " 原文出自" + blogName + " 转载请保留原文链接: " + document.location.href + "";
var copyText = selection + pagelink;
var newDiv = document.createElement('div');
newDiv.style.position = 'absolute';
newDiv.style.left = '-99999px';
body_element.appendChild(newDiv);
newDiv.innerHTML = copyText;
selection.selectAllChildren(newDiv);
window.setTimeout(function() {
body_element.removeChild(newDiv);
}, 0);
}
}
document.oncopy = addLink;
注:网上有很多地方都引用了这段代码,但大多都没有标明出处,后来巧合之下发现下面的原文链接
原文链接:http://www.hehaibao.com/js-auto-add-copyright/
补充:上面代码有2个我看不懂的属性,有兴趣的小伙伴可以看看
window.getSelection():表示用户选择的文本范围或光标的当前位置
clipboardData对象:剪贴板数据对象
js实现复制内容自动添加版权信息的更多相关文章
- JS实现复制网页内容自动加入版权内容代码和原文链接
JS实现复制网页内容自动加入版权内容代码和原文链接 实现代码:在body内放入如下代码即可: <script type="text/javascript"> var S ...
- Javascript禁止网页复制粘贴效果,或者复制时自动添加来源信息
一.禁止复制 使用方法:在oncopy事件中return false oncopy="return false;" 1.禁止复制网页内容 <body oncopy=" ...
- eclipse自动添加版权信息
Preference->Java->Code Style->Code Template->comments->Files->Edit 勾选上Automaticall ...
- C#实现为类和函数代码自动添加版权注释信息的方法
这篇文章主要介绍了C#实现为类和函数代码自动添加版权注释信息的方法,主要涉及安装文件的修改及函数注释模板的修改,需要的朋友可以参考下 本文实例讲述了C#实现为类和函数代码自动添加版权注释信息的方法 ...
- 为js和css文件自动添加版本号
web应用必然要面对缓存问题,无论前台后台都会涉足缓存.特别是对于前端而言,缓存利用的是否得当直接关系到应用的性能. 通常情况下,我们会倾向于使用缓存,因为缓存一方面可以减少网络开销,一方面可以减轻服 ...
- [Windows] VS2010代码模板添加版权信息
通过以下方式可以自定义CS类文件代码模板(以下为VS2010,VS2008类似): 1,打开VS的安装目录,例如 D:\Program Files\Microsoft Visual Studio 10 ...
- Word·去掉复制粘贴自动添加的空格
阅文时长 | 0.05分钟 字数统计 | 145.6字符 主要内容 | 1.引言&背景 2.声明与参考资料 『Word·去掉复制粘贴自动添加的空格』 编写人 | SCscHero 编写时间 | ...
- Html 页面底部添加版权信息
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js监听页面copy事件添加版权信息
个人博客 地址:http://www.wenhaofan.com/article/20180921103346 1.介绍 当页面需要做版权保护时,比如当用户copy我们网站的文章时,我们会希望在他co ...
随机推荐
- Git merge 不同的branch
Git的优势是可以创建不同的branch,然后在每个branch上开发.那么问题是:如果不同的branch之间需要做同步,比如sourceBranch上做的修改也需要同步到targetBranch,改 ...
- js学习之原生js实现懒加载
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Servlet中的转发与重定向
Sevlet 的转发与重定向都可以使得浏览器指向另一个资源文件,但它们的运行机制不相同. 一.Servlet的转发 有两种方式获得转发对象(RequestDispathcer): HttpServle ...
- mysql 数据库导入导出方法总结
一般形式:mysqldump -h IP -u 用户名 -p 数据库名 > 导出的文件名 (1)-p 后面不能加password,只能单独输入如1中那样 (2)mysqldump是在cmd下的命 ...
- 20165213 Exp4 恶意代码分析
恶意代码分析 实践目标 1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,sy ...
- HTTP之响应消息Response
一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息. HTTP响应也由四个部分组成,分别是:状态行.消息报头.空行和响应正文. 例子 HTTP/1.1 200 OK Date ...
- HttpWebRequest 自定义header,Post发送请求,请求形式是json,坑爹的代码
public static string PostMoths(string url, LoginDTO obj_model, Dictionary<string, string> dic ...
- STS中logback.xml配置文件
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...
- CRT-常用命令
1 目录操作 mkdir a ;(新建文件夹) mkdir -p a/b;(新建多及目录文件夹) Rmdir a (a只能是空目录) Rmdir -p a (a可以是多级目录) 2 文件操作 touc ...
- RHCSA之路(1) -- 重拾RHEL 7
去年就买了Linux就该这么学这本书,在自己电脑上和实验室里的电脑都按照书上写的配置安装好了RHEL 7系统,然后看到了第二章就被别的事情吸引了注意力就再也没碰过了.现在希望自己能专注下来,一步一步做 ...