網(wǎng)頁代碼是制作者的勞動成果,有些人卻可以通過瀏覽器或其他手段來盜用網(wǎng)頁的原代碼,所以我們需要一些防范的措施。
------------------------------------------------------------------------------------------------------
1. oncontextmenu="window.event.returnvalue=false" //將徹底屏蔽鼠標(biāo)右鍵 <table border oncontextmenu=return(false)><td>no</table> //可用于Table ------------------------------------------------------------------------------------------------------
2. <body onselectstart="return false"> //取消選取、防止復(fù)制 ------------------------------------------------------------------------------------------------------
3. onpaste="return false" //不準(zhǔn)粘貼 ------------------------------------------------------------------------------------------------------
4. oncopy="return false;" oncut="return false;" // 防止復(fù)制
------------------------------------------------------------------------------------------------------
5. //防止被人frame <SCRIPT LANGUAGE=javascript><!-- if (top.location != self.location)top.location=self.location; // --></SCRIPT>
------------------------------------------------------------------------------------------------------
6. <noscript><iframe src=*.html></iframe></noscript> //網(wǎng)頁將不能被另存為
------------------------------------------------------------------------------------------------------
7. //改變連接是狀態(tài)欄的顯示內(nèi)容
〈a href="http://v." onMo ... ;window.status=‘輸入連接狀態(tài)欄顯示內(nèi)容’;return true">
------------------------------------------------------------------------------------------------------
8. //禁止網(wǎng)頁中目標(biāo)對象被下載(如圖片)
下面的代碼將幫助你禁止網(wǎng)頁中目標(biāo)對象被下載:
<a href="javascript:void(0)" onMouseDown="alert(‘對不起!圖片不能下載!‘)">
</a>
------------------------------------------------------------------------------------------------------
9. //頁面禁止刷新完全 最好在pop出來的窗口里用,沒工具欄的
<body onkeydown="KeyDown()" onbeforeunload="location=location" oncontextmenu="event.returnValue=false">
<script language="Javascript"><!-- function KeyDown(){ if ((window.event.altKey)&& ((window.event.keyCode==37)|| (window.event.keyCode==39))){ alert("請?jiān)L問我的主頁"); event.returnValue=false; } if ((event.keyCode==8)|| (event.keyCode==116)){ //屏蔽 F5 刷新鍵 event.keyCode=0; event.returnValue=false; } if ((event.ctrlKey)&&(event.keyCode==78)){ //屏蔽 Ctrl+n event.returnValue=false; } if ((event.shiftKey)&&(event.keyCode==121)){ //屏蔽 shift+F10 event.returnValue=false; } } </script> </body>
------------------------------------------------------------------------------------------------------
10. //如何徹底禁止查看網(wǎng)頁源代碼
轉(zhuǎn)自:http://www./htm/app/aprog/01_12_11_3.asp
網(wǎng)頁制作者經(jīng)常遇到精心制作的Javascript特效被別人抄襲,而自己對此卻無可奈何的情況。面對這一困擾,有沒有方法可以解決呢?使用ASP、JSP等服務(wù)器端編程技術(shù)可以實(shí)現(xiàn)對網(wǎng)頁源代碼的保護(hù),但目前國內(nèi)網(wǎng)站所提供的免費(fèi)個人主頁空間一般都不提供對服務(wù)器端編程的支持,所以對于這些用戶,要禁止訪問者查看網(wǎng)頁源代碼就只能在客戶端編程上下工夫了。 查看源代碼的方式 要禁止訪問者查看網(wǎng)頁源代碼,我們首先要了解一下查看源代碼的方式(以IE 5.0為例)。一是右鍵菜單方式; 二是窗口菜單欄查看方式,即選擇"查看"*"源文件"方式。要徹底禁止訪問者查看網(wǎng)頁源代碼,就必須屏蔽這2種查看源代碼的方式。 屏蔽右鍵菜單查看方式 現(xiàn)在,很多網(wǎng)頁采用如下代碼屏蔽右鍵菜單: < Script Language=javascript> function Click(){ if(event.button==2){alert (‘版權(quán)所有(C)2001 XXX工作室‘); }} document.onmousedown=Click; < /Script> 實(shí)際上"button"有8個屬性值(即0~7),"button==2"只是表示按下鼠標(biāo)右鍵,所以上述代碼實(shí)際上只能限制點(diǎn)擊鼠標(biāo)右鍵的情況,至于其他5種方式,如同時按左右鍵、中間鍵、左和中間鍵、右和中間鍵和按所有鍵的情況就不能限制了。所以在彈出版權(quán)信息提示窗口后(如圖3所示),按"確定"按鈕仍然會出現(xiàn)快捷菜單。針對這種情況,其實(shí)只要將"event.button==2"改為"event.button!=1"就可以做到無論用何種鼠標(biāo)點(diǎn)擊方式,均不出現(xiàn)右鍵菜單了。 不過即使進(jìn)行上述修改后,也并不能徹底禁止右鍵菜單的出現(xiàn)。用戶只要在頁面上按下右鍵,出現(xiàn)版權(quán)信息提示窗口后,不松開右鍵(即繼續(xù)保持按下狀態(tài)),再將鼠標(biāo)指針移動到版權(quán)信息提示窗口的"確定"按鈕上,同時按下左鍵,然后再松開鼠標(biāo)左鍵,提示窗口即消失。此時再松開鼠標(biāo)右鍵,右鍵菜單彈出,這樣就又可以查看網(wǎng)頁源文件了。 那么有沒有辦法徹底禁止右鍵快捷菜單的出現(xiàn)呢?其實(shí)只要將上述代碼做如下修改即可。 < Script Language=javascript> function Click(){ alert(‘版權(quán)所有(C)2001 XXX工作室‘); window.event.returnValue=false; } document.oncontextmenu=Click; < /Script> 這樣無論采取什么方式點(diǎn)擊鼠標(biāo),都不會再出現(xiàn)快捷菜單了。不過值得注意的是,如果訪問者直接在瀏覽器地址欄中鍵入"javascript:alert(document.oncontextmenu=‘‘)",就可以解除對右鍵菜單的屏蔽。對這類訪問者怎樣防范呢?其實(shí),把地址欄隱藏掉就可以了,具體方法見本文介紹的"屏蔽窗口菜單欄查看方式"。 屏蔽窗口菜單欄查看方式 制作過網(wǎng)頁的朋友都知道,對新打開窗口的各種屬性可以進(jìn)行控制,具體包括控制菜單欄、滾動條及地址欄是否可見等。如果把父窗口關(guān)閉,并將新打開窗口的菜單欄和地址欄隱藏,不就可以屏蔽窗口菜單欄查看方式了嗎?實(shí)現(xiàn)代碼如下: < Head> < Object id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"> < Param name="Command" value="Close"> < /Object> < /Head> < Body> < Script Language=javascript> closes.Click() window.open("XXX.htm","","menubar=no,location=no, scrollbars=yes,resizable=yes") < /Script> < /Body> 這種方法的原理就是首先將自己網(wǎng)站的首頁制作成index.htm形式,把首頁設(shè)計成一個過渡頁。然后將自己的真正主頁制作成default.htm形式(具體實(shí)現(xiàn)過程見本文所附源代碼)。這樣訪問者無論如何也無法查看網(wǎng)頁源代碼了。這不僅僅保護(hù)了您的版權(quán),也為進(jìn)一步開發(fā)提供了保障。通過此方法,您可以結(jié)合Cookie技術(shù),真正做到限制用戶瀏覽網(wǎng)頁,從而避免主頁資料被非法訪問者訪問。 附:源代碼清單 index.htm < Head> < Object id=closes type="application/x-oleobject" classid="clsid: adb880a6-d8ff-11cf-9377-00aa003b7a11"> < Param name="Command" value="Close"> < /Object> < /Head> < Body> < Script Language=javascript> closes.Click() window.open("defalut.htm","","menubar=no,location=no, scrollbars=yes,resizable=yes") < /Script> < /Body> default.htm < Html> < Head> < Script Language=javascript> function Click(){ alert(‘版權(quán)所有(C)2001 XXX工作室‘); window.event.returnValue=false; } document.oncontextmenu=Click; < /Script> < /Head> < Body> ... ... < /Body> < /Html> 注: 本文涉及內(nèi)容在Windows 98/IE 5.0下測試通過。
|