在知乎复制的文本为什么会自带一些版权声明,这个功能是如何实现的?
2018-03-01 23:24
423 查看
https://segmentfault.com/q/1010000003986612原文
大体思路:答案区域监听
获取选中的内容(
一个简单的DEMO 测试发现点击信息就有了,非复制就实现。
大体思路:答案区域监听
copy事件,并阻止这个事件的默认行为。
获取选中的内容(
window.getSelection())加上版权信息,然后设置到剪切板(
clipboardData.setData())。
一个简单的DEMO 测试发现点击信息就有了,非复制就实现。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <div id="answer">测试数据<b>test</b></div> <script> function setClipboardText(event){ event.preventDefault(); var node = document.createElement('div'); //对documentfragment不熟,不知道怎么获取里面的内容,用了一个比较笨的方式 node.appendChild(window.getSelection().getRangeAt(0).cloneContents()); var htmlData = '<div>著作权归作者所有。<br />' + '商业转载请联系作者获得授权,非商业转载请注明出处。<br />' + '作者:tiantian<br />链接:http://segmentfault.com/u/tiantian_<br />' + '来源:segmentfault<br /><br />' + node.innerHTML + '</div>'; var textData = '著作权归作者所有。\n' + '商业转载请联系作者获得授权,非商业转载请注明出处。\n' + '作者:tiantian\n链接:http://segmentfault.com/u/tiantian_\n' + '来源:segmentfault\n\n' + window.g 9f98 etSelection().getRangeAt(0); if(event.clipboardData){ event.clipboardData.setData("text/html", htmlData); event.clipboardData.setData("text/plain",textData); } else if(window.clipboardData){ return window.clipboardData.setData("text", textData); } }; var answer = document.getElementById("answer"); answer.addEventListener('copy',function(e){ setClipboardText(e); }); </script> </body> </html>禁止复制
语法
element.oncopy = functionRef;
<html> <head> <title>oncopy示例演示</title> <script> function log(txt) { document.getElementById("log").appendChild(document.createTextNode(txt + "\n")); } </script> </head> <body> <div oncopy="log('复制被阻止!'); return false;">试着复制这句话!</div> <h3>Log</h3> <textarea rows="15" cols="80" id="log" readonly="true"></textarea> </body> </html>
相关文章推荐
- 类似xkzzz复制文章自动加上版权功能的实现
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- 如何实现这个功能呢?
- 为什么要检测数据库连接是否可用,项目经理说如果实现了这个功能,客户会认可你的软件很专业,很好用
- 如何实现 对输入框的文本内容进行限制的功能
- 如何利用asp.net控件实现这个功能?
- DEDE中实现复制文章时自动加上版权的功能
- 如何利用JS实现复制/粘贴功能
- 基于jquery的禁用右键、文本选择功能、复制按键的实现代码
- jquery禁用右键、文本选择功能、复制按键的实现
- extjs表格文本启用选择复制功能具体实现
- extjs表格文本启用选择复制功能具体实现
- jquery禁用右键、文本选择功能、复制按键的实现
- jquery禁用右键、文本选择功能、复制按键的实现
- jquery禁用右键、文本选择功能、复制按键的实现
- jquery禁用右键、文本选择功能、复制按键的实现[转]
- 如何利用asp.net控件实现这个功能?
- jquery禁用右键、文本选择功能、复制按键的实现
- JavaScript实现自动在复制的内容后添加版权声明
- JQuery禁用右键、文本选择功能、复制按键的实现(转载)