2015-09-24 39 views
0
<html> 
<head><title>Practice</title> 

<script language="javascript" type="text/javascript"> 
function disableCopy() 
{ 
alert("You cannot perform Copy"); 
return false; 
} 

function disablePaste() 
{ 
alert("You cannot perform Paste"); 
return false; 
} 

function disableCut() 
{ 
alert("You cannot perform Cut"); 
return false; 
} 


function disableContextMenu() 
{ 
alert("You cannot perform right click via mouse as well as keyboard"); 
return false; 
} 
</script> 
</head> 
<body> 

Password:<input type="password" oncopy="return disableCopy();" onpaste="return disablePaste();" oncut="return disableCut();" oncontextmenu="return disableContextMenu();"/> 

</body> 
</html> 

如何使用警報消息禁用對密碼框的剪切,複製和粘貼操作,以便每次操作在密碼框上執行它顯示一個警報提示,這樣用戶將被通知他不能對密碼進行剪切,複製和粘貼操作。我已經通過其他使用onCopy,onCut,onPaste事件的例子。這些功能並沒有提示我在所有三個瀏覽器上運行的警報消息,請爲此提供幫助,例如它可以在所有三種瀏覽器上運行,並且在onCopy,onCut,onPaste事件發生時它會提示我一個警報。我需要的是當我從密碼字段複製或剪切密碼時,我需要一個警報聲明密碼不能被複制作爲消息。如何在所有瀏覽器(如Chrome和Internet Explorer)禁用剪切,複製和粘貼操作

感謝網友提前爲幫助

+2

沒有人想成爲這個用戶。沒有人希望他們普通的操作系統範圍的鍵盤快捷方式提出一個表示他們已被阻止的模式彈出窗口。這是用戶不友好的,並且它可能會導致安全性不佳 - 例如,從密碼安全中粘貼長隨機密碼是很常見的事情。 – TessellatingHeckler

+0

爲什麼要阻止密碼輸入? ......可能還有其他方法來實現你想要的。 – LGSon

+0

禁用粘貼會導致你錯誤的方式... – 3442

回答

0

是否允許用戶執行這樣的行動可能取決於應用的要求。要在vanilla js中實現此目的,可以參考以下示例。

document.getElementById('password').addEventListener('copy', function(e) { 
 
    e.preventDefault(); 
 
}); 
 
document.getElementById('password').addEventListener('paste', function(e) { 
 
    e.preventDefault(); 
 
}); 
 
document.getElementById('password').addEventListener('cut', function(e) { 
 
    e.preventDefault(); 
 
}); 
 
document.getElementById('password').addEventListener('drag', function(e) { 
 
    e.preventDefault(); 
 
}); 
 
document.getElementById('password').addEventListener('drop', function(e) { 
 
    e.preventDefault(); 
 
});
Password: 
 
<input type="password" id="password" />

0

一種方法是使用一個全球性的處理,在那裏你可以通過檢查其ID

window.addEventListener('copy', function(e) { 
    if (e.target.id == "password-new") { 
     e.preventDefault(); 
     alert("not allowed"); 
    } 
}); 

window.addEventListener('paste', function(e) { 
    if (e.target.id == "password-again") { 
     e.preventDefault(); 
     alert("not allowed"); 
    } 
}); 

etc... 

如果你想趕上這個年長處理多個輸入IE,改變這部分以上

var target = e.target || event.srcElement; 
    if (target.id == "password-new") { 
     e.preventDefault(); 
     alert("not allowed"); 
    } 
相關問題