防止代码复制

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

//插入 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 = /&nbsp;/gi;

code = code.replace(re, " ");

// Replace & characters.

re = /&amp;/gi;

code = code.replace(re, "&");

// Replace < characters.

re = /&lt;/gi;

code = code.replace(re, "<");

// Replace > characters.

re = /&gt;/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>&lt;%

<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>&quot;scripting.filesystemobject&quot;</SPAN>)

<SPAN class=vb-statement>dim</SPAN> asplines, jslines, aspbytes, jsbytes, aspwords

iterate(server.mappath(<SPAN class=vb-string>&quot;/web_api&quot;</SPAN>))

response.write <SPAN class=vb-string>&quot;ASP:

Total Lines Coded: &quot;</SPAN> &amp; asplines &amp; <SPAN class=vb-string>&quot;

Total Bytes: &quot;</SPAN> &amp; aspbytes &amp; <SPAN class=vb-string>&quot;

Total Individual Elements (words) Typed: &quot;</SPAN> &amp; aspwords

response.write <SPAN class=vb-string>&quot;

JScript:

Total Lines Coded: &quot;</SPAN> &amp; jslines &amp; <SPAN class=vb-string>&quot;

&quot;</SPAN> &amp; <SPAN class=vb-string>&quot;Total Bytes: &quot;</SPAN> &amp; 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>&quot; +&quot;</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>&quot;.asp&quot;</SPAN> <SPAN class=vb-keyword>or</SPAN> right(file.name,<SPAN class=vb-literal>3</SPAN>)=<SPAN class=vb-string>&quot;.js&quot;</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>&quot;&quot;</SPAN> <SPAN class=vb-statement>else</SPAN> txt = ts.readall

ts.close

txt = rx.replace(txt,<SPAN class=vb-string>&quot; &quot;</SPAN>)

txt = replace(txt,vbcrlf&amp;vbcrlf,vbcrlf)

arr = split(replace(txt,vbcrlf,<SPAN class=vb-string>&quot; &quot;</SPAN>),<SPAN class=vb-string>&quot; &quot;</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>&quot;.asp&quot;</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-statemen

[1] [2] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航