網頁代碼是製作者的勞動成果,有些人卻可以通過瀏覽器或其他手段來盜用網頁的原代碼,所以我們需要一些防範的措施。
------------------------------------------------------------------------------------------------------
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="http://v.2best.cc" onMouseOver="window.status='輸入串連狀態列顯示內容’;return true">
------------------------------------------------------------------------------------------------------
8. //禁止網頁中目標對象被下載(片)
下面的代碼將協助你禁止網頁中目標對象被下載:
<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("請訪問我的首頁");
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. //如何徹底禁止查看網頁原始碼
轉自:http://www.ccw.com.cn/htm/app/aprog/01_12_11_3.asp
網頁製作者經常遇到精心製作的Javascript特效被別人抄襲,而自己對此卻無可奈何的情況。面對這一困擾,有沒有方法可以解決呢?使用ASP、JSP等伺服器端編程技術可以實現對網頁原始碼的保護,但目前國內網站所提供的免費個人首頁空間一般都不提供對伺服器端編程的支援,所以對於這些使用者,要禁止訪問者查看網頁原始碼就只能在用戶端編程上下工夫了。
查看原始碼的方式
要禁止訪問者查看網頁原始碼,我們首先要瞭解一下查看原始碼的方式(以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下測試通過。