文章内容复制javascript自动增加出处来源
复制文章内容时,用javascript自动向复制的区域增加浏览器地址栏url地址。
纯javascript实现,不需要任何插件。
实现原理:在copy事件中,javascript通过修改selection实现内容复制,先将用户当前选中的内容复制到一个容器里面,让后移除当前用户选择,将容器的内容选中。
测试代码如下
<script> /*文章内容复制javascript自动增加出处来源(article content copy auto add Source) *author:showbo,http://www.w3dev.cn,使用请保留出处 */ var copypaste = { copyPasteInit: function () { var a = document.getElementsByTagName("body")[0]; var c = document.createElement("div"); //内容容器对象,用来放置用户已经选中的内容 c.style.position = "absolute"; c.style.top = "-1999px"; c.style.left = "-1988px"; a.appendChild(c); if (document.addEventListener) {//标准浏览器 a.addEventListener("copy", function (k) { var h = document.getSelection(); if (h.isCollapsed) return; var g = h.getRangeAt(0).cloneContents(); c.appendChild(g); if (c.textContent.trim().length == 0) return; c.innerHTML = copypaste.selectionModify(h); var f = document.createRange(); f.selectNodeContents(c); h.removeAllRanges(); h.addRange(f); setTimeout(function () { h.removeAllRanges() },0); }, false); } else if (document.selection) {//IE document.body.oncopy = function () { var sel = document.selection, r = sel.createRange(); c.innerHTML = copypaste.selectionModify(r.htmlText); sel.empty(); r = document.body.createTextRange(); r.moveToElementText(c); r.select(); setTimeout(function () { sel.empty(); }, 0); } } }, selectionModify: function (q, n) {//增加来源内容 var note = '更多信息请查看:'; //内容为“更多信息请查看”,防止乱码修改为unicode编码字符 return q.length < 10 ? q : q + "<br/>" + note + "<a href='" + location.href + "'>" + location.href + "</a>"; } }; if (window.addEventListener) window.addEventListener('load', copypaste.copyPasteInit, false); else if (window.attachEvent) window.attachEvent('onload', copypaste.copyPasteInit); </script> 复制文章内容时,用javascript自动向复制的区域增加浏览器地址栏url地址。纯javascript实现,不需要任何插件。在copy事件中,javascript通过修改selection实现内容复制,先将用户当前选中的内容复制到一个容器里面,让后移除当前用户选择,将容器的内容选中。
加支付宝好友偷能量挖...
原创文章,转载请注明出处:文章内容复制javascript自动增加出处来源