10

我正在制作这个 javascript 代码以禁用 Ctlr+c 和 Ctlr+v、prenscreen、ALT+TAB、Ctlr+S 和 PrintScreen 键。

<html>
<head>
<script language="javascript">

function Disable_Control_C() {
var keystroke = String.fromCharCode(event.keyCode).toLowerCase();

if (event.ctrlKey && (keystroke == 'c' || keystroke == 'v')) {
alert("let's see");
event.returnValue = false; // disable Ctrl+C
}
}

</script>
</head>
<body onkeydown="javascript:Disable_Control_C()">
Hello World!
</body>
</html>

不幸的是,代码可以在 IE 浏览器上运行,但不能在 Firefox 上运行。有人可以在这里建议吗?

4

4 回答 4

26
  • 我不喜欢浏览器对我这样做,并且
  • 它很容易解决,并且
  • 从任何定义来看,这都不算“安全”,但是

使用element.on(?:copy| cut|paste)

<body oncopy="return false" oncut="return false" onpaste="return false">
于 2013-03-13T19:46:00.860 回答
15

您可以为此使用 jquery。您只需要将cut,copypaste功能与您的元素绑定。

并添加这个 Jquery 脚本:

$(document).ready(function() {
    $('#Selector').bind('copy paste', function(e) {
        e.preventDefault();
    });
});
于 2013-03-13T19:51:29.380 回答
1

我正在研究 React 项目。我们也有相同的要求来防止复制/粘贴/右键单击。

在 index.html 标记中使用以下代码<body/>。这将防止所有不必要的操作。

<body oncopy="return false;" oncut="return false;" onpaste="return false;" oncontextmenu="return false;">
于 2020-07-28T09:51:32.740 回答
0
// Disable Right click
document.addEventListener('contextmenu', event => event.preventDefault());

// Disable key down
document.onkeydown = disableSelectCopy;

// Disable mouse down
document.onmousedown = dMDown;

// Disable click
document.onclick = dOClick;

function dMDown(e) { return false; }

function dOClick() { return true; }

function disableSelectCopy(e) {
    // current pressed key
    var pressedKey = String.fromCharCode(e.keyCode).toLowerCase();
    if ((e.ctrlKey && (pressedKey == "c" || pressedKey == "x" || pressedKey == "v" || pressedKey == "a" || pressedKey == "u")) ||  e.keyCode == 123) {
        return false;
    }
}
于 2021-11-26T07:39:07.627 回答