2012-07-11 48 views
1

高級謝謝你的答覆。 我想使用javascript來禁用IE的查看源快捷鍵。 要禁用 「CTRL + C」,我現在用的是followinf功能:如何禁用使用JavaScript的鍵的組合?

function disableCopy() { 
    // current pressed key 
    var pressedKey = String.fromCharCode(event.keyCode).toLowerCase(); 
    if (event.ctrlKey && (pressedKey == "c")) { 
     // disable key press porcessing 
     event.returnValue = false; 
    } 
} 

任何一個可以建議如何禁用 「ALT + V + C」 組合?

+5

你意識到這不會最終阻止人們查看源代碼,如果他們確定,對嗎? – Utkanos 2012-07-11 13:24:17

+1

你想禁用查看HTML源代碼? – Anuraj 2012-07-11 13:24:45

+1

不知道爲什麼downvote。這個問題在概念上可能是有缺陷的,但對於它是什麼而言,它被問得很好,OP顯示了一個代碼嘗試。 +1。 – Utkanos 2012-07-11 13:26:40

回答

2

每個瀏覽器都有其內置的功能來查看源代碼或網頁。我們可以做一件事。這是禁用右鍵單擊您的網頁。

對於禁用右鍵單擊使用下面的代碼:

<SCRIPT TYPE="text/javascript"> 
function disableselect(e){ 
return false 
} 
function reEnable(){ 
return true 
} 
//if IE4+ 
document.onselectstart=new Function ("return false") 
//if NS6 
if (window.sidebar){ 
document.onmousedown=disableselect 
document.onclick=reEnable 
} 
</SCRIPT> 

記住一兩件事。我們可以使用螢火蟲或其他第三方工具查看此來源。所以我們不能這樣做100%。

+2

NS6 ?!歡迎來到2002! – BunjiquoBianco 2012-07-11 13:30:08

+1

我認爲這個問題下面的評論使得它不值得回答。不是以一種苛刻的方式 - 正如已經指出的那樣,阻止訪問源代碼是一個沒有啓動器。 – Utkanos 2012-07-11 13:31:38

+1

@Utkanos +1。這和事實代碼是*嚴重*過時。 – BunjiquoBianco 2012-07-11 13:34:12

0

你不應該真的阻止查看代碼。爲什麼?

原因

  1. 後,最終所有的努力,如果有人決定,他仍然可以看到你的代碼。

  2. 您將通過這樣做詆譭您的網站。

  3. 通常情況下,開發人員會看到代碼,他們會通過禁用JavaScript來突破您的安全措施,您會像「noob」一樣行事。

  4. 您的代碼中沒有敏感信息(我想)可以用來構成威脅。但是,如果您有一些可用於網站的代碼,您應該考慮刪除該代碼並確保網站的安全。

禁用組合

document.onkeydown = function(e) { 
     if (e.altKey && (e.keyCode === 67||e.keyCode === 86)) {//Alt+c, Alt+v will also be disabled sadly. 
      alert('not allowed'); 
     } 
     return false; 
};​ 

任何辦法,因爲我知道怎麼做了,我會告訴你。

這裏禁用右鍵單擊:

function clickIE() {if (document.all) {return false;}} 
function clickNS(e) {if 
(document.layers||(document.getElementById&&!document.all)) { 
if (e.which==2||e.which==3) {return false;}}} 
if (document.layers) 
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;} 
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;} 
document.oncontextmenu=new Function("return false") 
+0

底部代碼中的變量* message *完全沒用,它永遠不會得到輸出。 – BunjiquoBianco 2012-07-11 13:50:31

+0

哎呀!沒有意識到,做了編輯。 – 2012-07-11 13:53:09

+0

「e.keyCode === 67 && e.keyCode === 86」我沒有看到這種情況成爲現實.. 也應該是alt鍵而不是ctrl鍵 – 0xc0de 2012-07-11 13:54:13

0

ALT + V + C是一個非常奇怪的組合有。雖然下面的代碼會起作用,但它有點駭人聽聞。

if (event.altKey) { 
    if (event.keyCode == 67 && window.prevKey == 86) 
     event.preventDefault(); 
    else if (event.keyCode == 86 && window.prevKey == 67) 
     event.preventDefault(); 
    window.prevKey = event.keyCode 
} 
+0

看看其他答案,我可以猜測現在alt + V + C做什麼... – 0xc0de 2012-07-12 05:38:50