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