场景:当我从网上复制了所需代码到编辑器粘贴时,总会有如下版权信息提示

  

   看到好几次后,在好奇心的驱使下开始搜寻答案。网上有好几种写法,最开始我找到了如下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实现复制内容自动添加版权信息的更多相关文章

  1. JS实现复制网页内容自动加入版权内容代码和原文链接

    JS实现复制网页内容自动加入版权内容代码和原文链接 实现代码:在body内放入如下代码即可: <script type="text/javascript"> var S ...

  2. Javascript禁止网页复制粘贴效果,或者复制时自动添加来源信息

    一.禁止复制 使用方法:在oncopy事件中return false oncopy="return false;" 1.禁止复制网页内容 <body oncopy=" ...

  3. eclipse自动添加版权信息

    Preference->Java->Code Style->Code Template->comments->Files->Edit 勾选上Automaticall ...

  4. C#实现为类和函数代码自动添加版权注释信息的方法

    这篇文章主要介绍了C#实现为类和函数代码自动添加版权注释信息的方法,主要涉及安装文件的修改及函数注释模板的修改,需要的朋友可以参考下   本文实例讲述了C#实现为类和函数代码自动添加版权注释信息的方法 ...

  5. 为js和css文件自动添加版本号

    web应用必然要面对缓存问题,无论前台后台都会涉足缓存.特别是对于前端而言,缓存利用的是否得当直接关系到应用的性能. 通常情况下,我们会倾向于使用缓存,因为缓存一方面可以减少网络开销,一方面可以减轻服 ...

  6. [Windows] VS2010代码模板添加版权信息

    通过以下方式可以自定义CS类文件代码模板(以下为VS2010,VS2008类似): 1,打开VS的安装目录,例如 D:\Program Files\Microsoft Visual Studio 10 ...

  7. Word·去掉复制粘贴自动添加的空格

    阅文时长 | 0.05分钟 字数统计 | 145.6字符 主要内容 | 1.引言&背景 2.声明与参考资料 『Word·去掉复制粘贴自动添加的空格』 编写人 | SCscHero 编写时间 | ...

  8. Html 页面底部添加版权信息

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. js监听页面copy事件添加版权信息

    个人博客 地址:http://www.wenhaofan.com/article/20180921103346 1.介绍 当页面需要做版权保护时,比如当用户copy我们网站的文章时,我们会希望在他co ...

随机推荐

  1. after及before伪元素及解决父元素塌陷的几种方法

    一.伪类和伪元素 CSS中伪类和伪元素有很多,也很好用!如果熟练使用的话可以解决很多问题 首先明白什么是伪类:伪类是基于当前元素的状态,而不是元素的id class等静态标志,它是动态变化的,它会在一 ...

  2. 非root用户启动redis容器报错mkdir: cannot create directory '/bitnami/redis': Permission denied

    问题:使用docker启动容器时,报错如下 zh@debian:~/testPath$ docker-compose up redis Starting testpath_redis_1 ... do ...

  3. skyline开发——读取Shapefile要素属性

    double len; IFeatures66 features = featureLayer.FeatureGroups.Polyline.GetCurrentFeatures(); foreach ...

  4. Play中JSON序列化

    总的来说在scala体系下,对于习惯了java和c#这些常规开发的人来说,无论是akka-http还是play,就处理个json序列化与反序列化真他娘够费劲的. 根据经验,Json处理是比较简单的,但 ...

  5. Finance财务软件(自定义报表专题)

    我们可以通过存储过程自定义报表 1.在菜单中新增报表菜单,这里的代码约束为报表对应存储过程名称,配置完成成后重启客户端生效 2.在自定义模板中适配存储过程入参,这里的功能键值为存储过程名称,字段键值与 ...

  6. IAR FOR AVR 仿真过程中出现全局变量值不断随意变化的问题

    本文记录使用IAR FOR AVR 使用过程中出现的问题,确保自己以后能够有史可查,也分享给遇到同样问题的朋友. 版本信息:IAR Assembler for AVR  5.40.0 (5.40.0. ...

  7. python基础入门之对文件的操作

    **python**文件的操作1.打开文件 打开文件:open(file,mode='r') file:操作文件的路径加文件名 #绝对路径:从根目录开始的 #相对路径:从某个路径开始 mode:操作文 ...

  8. [入门]在Mac OS X下使用和配置Android Studio

    Android Studio可谓是安卓开发的XCode,流畅的速度+顺眼的UI足以秒杀Eclipse.在Mac OS X可以通过如下的途径获得Android Studio  最新版本的Android ...

  9. spring深入学习(三)-----spring容器内幕

    之前都是说了怎么配置bean以及用法之类的,这篇博文来介绍下spring容器内幕. 内部容器工作机制 Spring中AbstractApplicationContext抽象类的refresh()方法是 ...

  10. [swarthmore cs75] inlab1 — Tiny Compiler

    课程回顾 Swarthmore学院16年开的编译系统课,总共10次大作业.本随笔记录了inlab1的实践过程. tiny compiler 这个迷你的编译器可以将一个源文件,编译成可执行的二进制代码. ...