javascript – 如何禁用复制粘贴(浏览器)
作者:互联网
我正在尝试两种选择:
>忽略右键单击
>忽略ctrl C,ctrl A.
这是我的代码:
function noMenu() {
return false;
}
function disableCopyPaste(elm) {
// Disable cut/copy/paste key events
elm.onkeydown = interceptKeys
// Disable right click events
elm.oncontextmenu = function() {
return false
}
}
function interceptKeys(evt) {
evt = evt||window.event // IE support
var c = evt.keyCode
var ctrlDown = evt.ctrlKey||evt.metaKey // Mac support
// Check for Alt+Gr (http://en.wikipedia.org/wiki/AltGr_key)
if (ctrlDown && evt.altKey) return true
// Check for ctrl+c, v and x
else if (ctrlDown && c==67) return false // c
else if (ctrlDown && c==86) return false // v
else if (ctrlDown && c==88) return false // x
// Otherwise allow
return true
}
这是我的HTML:
<body class="node88" oncontextmenu="return noMenu();" onkeydown="return disableCopyPaste();">
noMenu()函数正在运行,但disableCopyPaste()不起作用.
解决方法:
你不能.
你可以尝试阻止一些向量(比如黑客点击更难点,拦截ctrl c,难以选择文本)……但它们只会有点工作,并且不可能阻止所有向量(编辑 – > ;复制?查看源代码?wget?等…).
如果您试图保护您的内容免受技术较少的用户的影响,这些方法可能没问题……但正如这里的评论所暗示的那样,它们会让更多技术用户感到沮丧.
如果您的敏感内容必须受到保护,您可能需要考虑将其嵌入Flash blob或DRM’dPDF中.这些仍然可以进行逆向工程,但需要一个稍微聪明的攻击者.
标签:html,javascript,jquery,keyboard-shortcuts 来源: https://codeday.me/bug/20190917/1810040.html