|
//插入 document.body.oncopy event事件中 //或者 <body>的"oncopy"属性 function copyCode() { try { var range = document.selection.createRange(); if (document.selection.type != "none") { var parent = range.parentElement(); var parentName = parent.tagName; if (parentName != null) { if (parentName.toLowerCase() == "pre") { // Replace superfluous <br> tags in a <pre> block. var re = /<br>/gi; var code = range.htmlText.replace(re, "\r\n");
// Replace non-breaking spaces. re = / /gi; code = code.replace(re, " ");
// Replace & characters. re = /&/gi; code = code.replace(re, "&");
// Replace < characters. re = /</gi; code = code.replace(re, "<");
// Replace > characters. re = />/gi; code = code.replace(re, ">"); // CJM: Remove colorization re = /<\/?span([^>])*>/gi; code = code.replace(re, "");
if (code != null) { window.event.returnValue = false; window.clipboardData.setData("Text", code); } } } } } catch(e) {} }
<HTML> <HEAD> <TITLE>防复制 </TITLE> <SCRIPT language=javascript src="/blog/js/oncopy.js"> </SCRIPT>
<META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT="feiyun"> <META NAME="Keywords" CONTENT="nocopy"> <META NAME="Description" CONTENT="no copy"> </HEAD> <BODY oncopy="return copyCode();" > <FONT COLOR="#FF0000">防代码复制,不信你试试(只防止代码复制,其他可以复制)</FONT><BR> <TABLE> <TR> <TD>aa</TD> <TD>bb</TD> <TD>cc</TD> </TR> <TR> <TD>dd</TD> <TD>ee</TD> <TD>ff</TD> </TR> </TABLE>
<PRE lang=vbscript><% <SPAN class=vb-statement>option</SPAN> <SPAN class=vb-statement>explicit</SPAN> <SPAN class=vb-statement>dim</SPAN> fso <SPAN class=vb-statement>set</SPAN> fso = createobject(<SPAN class=vb-string>"scripting.filesystemobject"</SPAN>) <SPAN class=vb-statement>dim</SPAN> asplines, jslines, aspbytes, jsbytes, aspwords iterate(server.mappath(<SPAN class=vb-string>"/web_api"</SPAN>)) response.write <SPAN class=vb-string>"ASP: Total Lines Coded: "</SPAN> & asplines & <SPAN class=vb-string>" Total Bytes: "</SPAN> & aspbytes & <SPAN class=vb-string>" Total Individual Elements (words) Typed: "</SPAN> & aspwords response.write <SPAN class=vb-string>" JScript: Total Lines Coded: "</SPAN> & jslines & <SPAN class=vb-string>" "</SPAN> & <SPAN class=vb-string>"Total Bytes: "</SPAN> & jsbytes <SPAN class=vb-statement>function</SPAN> iterate(path) <SPAN class=vb-statement>dim</SPAN> folder, folders, files, file, ts, txt, arr, f <SPAN class=vb-statement>set</SPAN> folder = fso.getfolder(path) <SPAN class=vb-statement>set</SPAN> files = folder.files <SPAN class=vb-statement>dim</SPAN> rx, c <SPAN class=vb-statement>set</SPAN> rx = <SPAN class=vb-keyword>new</SPAN> regexp rx.ignorecase = <SPAN class=vb-keyword>true</SPAN> rx.global = <SPAN class=vb-keyword>true</SPAN> rx.pattern = <SPAN class=vb-string>" +"</SPAN> <SPAN class=vb-statement>for</SPAN> <SPAN class=vb-statement>each</SPAN> file in files <SPAN class=vb-statement>if</SPAN> right(file.name,<SPAN class=vb-literal>4</SPAN>)=<SPAN class=vb-string>".asp"</SPAN> <SPAN class=vb-keyword>or</SPAN> right(file.name,<SPAN class=vb-literal>3</SPAN>)=<SPAN class=vb-string>".js"</SPAN> <SPAN class=vb-statement>then</SPAN> <SPAN class=vb-statement>set</SPAN> ts = file.openastextstream <SPAN class=vb-statement>if</SPAN> ts.atendofstream <SPAN class=vb-statement>then</SPAN> txt = <SPAN class=vb-string>""</SPAN> <SPAN class=vb-statement>else</SPAN> txt = ts.readall ts.close txt = rx.replace(txt,<SPAN class=vb-string>" "</SPAN>) txt = replace(txt,vbcrlf&vbcrlf,vbcrlf) arr = split(replace(txt,vbcrlf,<SPAN class=vb-string>" "</SPAN>),<SPAN class=vb-string>" "</SPAN>) aspwords = aspwords + ubound(arr) arr = split(txt,vbcrlf) <SPAN class=vb-statement>if</SPAN> right(file.name,<SPAN class=vb-literal>4</SPAN>)=<SPAN class=vb-string>".asp"</SPAN> <SPAN class=vb-statement>then</SPAN> asplines = asplines + ubound(arr) aspbytes = aspbytes + len(txt) <SPAN class=vb-statement>else</SPAN> jslines = jslines + ubound(arr) jsbytes = jsbytes + len(txt) <SPAN class=vb-statement>end</SPAN> <SPAN class=vb-statement>if</SPAN> <SPAN class=vb-statement>end</SPAN> <SPAN class=vb-statement>if</SPAN> <SPAN class=vb-statement>next</SPAN> <SPAN class=vb-statement>set</SPAN> folders = folder.subfolders <SPAN class=vb-statement>for</SPAN> <SPAN class=vb-statement>each</SPAN> f in folders iterate f.path <SPAN class=vb-statement>next</SPAN> <SPAN class=vb-statement>end</SPAN> <SPAN class=vb-statement>function</SPAN> %></PRE>
</BODY> </HTML> |