js禁止右鍵和複製功能

來源:互聯網
上載者:User
 下面就是實現效果所需代碼:
function click(e) {
if (document.all) {
if (event.button==1||event.button==2||event.button==3) {
oncontextmenu='return false';
}
}
if (document.layers) {
if (e.which == 3) {
oncontextmenu='return false';
}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=click;
document.oncontextmenu = new Function("return false;")

var travel=true
var hotkey=17 /* hotkey即為熱鍵的索引值,是ASII碼,這裡99代表c鍵 */
if (document.layers)
document.captureEvents(Event.KEYDOWN)
function gogo(e)
{ if (document.layers) {
if (e.which==hotkey&&travel){
alert("操作錯誤.或許是您按錯了按鍵!"); } }
else if (document.all){
if (event.keyCode==hotkey&&travel){ alert("操作錯誤.或許是您按錯了按鍵!"); }}
}

document.onkeydown=gogo
把上面的代碼另存新檔一個JS檔案,然後在想實現此效果的頁面調用即可!
本文來自:php小戴編程技術門戶(www.phpxd.com) 詳細出處參考:http://www.phpxd.com/yuandaima/2009-04-09/200904091602160.html

 

 

 

 

 

 

網頁製作者經常遇到精心製作的Javascript特效被別人抄襲,而自己對此卻無可奈何的情況。面對這一困擾,有沒有方法可以解決呢?使用 ASP、JSP等伺服器端編程技術可以實現對網頁原始碼的保護,但目前國內網站所提供的免費個人首頁空間一般都不提供對伺服器端編程的支援,所以對於這些 使用者,要禁止訪問者查看網頁原始碼就只能在用戶端編程上下工夫了。 查看原始碼的方式要禁止訪問者查看網頁原始碼,我們首先要瞭解一下查看原始碼的方式(以IE 5.0為例)。一是右鍵菜單方式(1所示); 二是視窗功能表列查看方式,即選擇"查看"*"源檔案"方式(2所示)。要徹底禁止訪問者查看網頁原始碼,就必須屏蔽這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;& lt; /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" 100%">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;& lt; /Script>< /Head>< Body>... ...< /Body>< /Html>注: 本文涉及內容在Windows 98/IE 5.0下測試通過。

附加禁止右鍵代碼和防止查看源碼代碼:
<body>
<Script Langvage=javascript>
function Click(){
alert('著作權:Www.52Hmily.Cn QQ:68857640');
window.event.returnValue=false;
}
document.oncontextmenu=Click;
</Script>
</body>

<html>
<head>
<script>
function clear(){
Source=document.body.firstChild.data;
document.open();
document.close();
document.title="看不到原始碼";
document.body.innerHTML=Source;
}</script>
</head>
<body onload=clear() >
<!--
歡迎你來找源碼。歡迎你來找源碼。歡迎你來找源碼。歡迎你來找源碼。歡迎你來找源碼。歡迎你來找源碼。、源碼。 歡迎你來找源碼。歡迎你來找源碼。歡迎你來找源碼。歡迎你來找源碼。歡迎你來找源碼。
-->
<noscript><iframe src="*.htm"></iframe></noscript>
<font color=white>嗨你真強,竟然被你用MAXTHON看到了源碼,但你看到的僅僅占整個源碼的10/100~
</body>
</html>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.