我目前正在做一个项目,我需要阻止用户拍摄任何网页的快照,为此他可以使用任何普通键盘中可用的“Print Scrn”/“Printscreen”键。
我一直试图找到它的解决方案,但徒劳无功。如果可能,我需要考虑Firefox 浏览器的“ Screengrab ”附加组件,同时将其停止。
非常感谢任何帮助,我在我的项目中使用 PHP(作为服务器端语言)和 jQuery。
我目前正在做一个项目,我需要阻止用户拍摄任何网页的快照,为此他可以使用任何普通键盘中可用的“Print Scrn”/“Printscreen”键。
我一直试图找到它的解决方案,但徒劳无功。如果可能,我需要考虑Firefox 浏览器的“ Screengrab ”附加组件,同时将其停止。
非常感谢任何帮助,我在我的项目中使用 PHP(作为服务器端语言)和 jQuery。
我讨厌“这是不可能的”这句话。以下是所有可以帮助您的解决方案:
1- 您可以从 Haluk 获取解决方案:
<script type="text/javascript"> $(document).ready(function() {
$(window).keyup(function(e){
if(e.keyCode == 44){
$("body").hide();
}
}); });
</script>
但是,您隐藏了身体,但已经“打印”到剪贴板。您可以触发另一个将一些文本复制到剪贴板的事件,正如您在此答案“Edit as of 2016”中看到的,使用 jQuery 单击按钮复制到剪贴板,它是这样的:
function copyToClipboard() {
// Create a "hidden" input
var aux = document.createElement("input");
// Assign it the value of the specified element
aux.setAttribute("value", "Você não pode mais dar printscreen. Isto faz parte da nova medida de segurança do sistema.");
// Append it to the body
document.body.appendChild(aux);
// Highlight its content
aux.select();
// Copy the highlighted text
document.execCommand("copy");
// Remove it from the body
document.body.removeChild(aux);
alert("Print screen desabilitado.");
}
$(window).keyup(function(e){
if(e.keyCode == 44){
copyToClipboard();
}
});
这将阻止您的问题的一部分。如果用户关注此窗口外的另一个对象,他将能够截取屏幕截图。**但还有另一种解决方案,只需在窗口未聚焦时禁用孔体即可。完整的解决方案,来自您亲爱的巴西朋友:
function copyToClipboard() {
// Create a "hidden" input
var aux = document.createElement("input");
// Assign it the value of the specified element
aux.setAttribute("value", "Você não pode mais dar printscreen. Isto faz parte da nova medida de segurança do sistema.");
// Append it to the body
document.body.appendChild(aux);
// Highlight its content
aux.select();
// Copy the highlighted text
document.execCommand("copy");
// Remove it from the body
document.body.removeChild(aux);
alert("Print screen desabilitado.");
}
$(window).keyup(function(e){
if(e.keyCode == 44){
copyToClipboard();
}
});
$(window).focus(function() {
$("body").show();
}).blur(function() {
$("body").hide();
});
这是工作示例:
这不可能。
您无法禁用 Web 浏览器的屏幕抓取,只能通过在用户的 PC 上安装其他软件来实现。
有一些可用的 IRM(信息权限管理)工具可以做到这一点,例如通过保护 Windows/DirectX API 调用以及监视视频内存(如Oracle IRM或Microsoft 的 IRM 技术)。
尤其是后者可能会引起人们的兴趣,因为还有用于 Internet Explorer的Rights Management Add-on。
但正如其他人已经说过的,任何 IRM/DRM 技术都是有争议的,您应该明白它通常会限制或惹恼您的用户。
值得庆幸的是,无论是“禁用屏幕抓取”部分还是“禁用用户的 Firefox 扩展”部分,都无法可靠地实现这一令人发指的想法。即使是这样,正如@kbok 在上面的评论中指出的那样,您也无权这样做。
保护您的在线内容的唯一方法是版权法 - 提及这些通常足以吓唬人们不要滥用它!- 或者根本不显示。
试试这个
$(document).keyup(function(e){
if(e.keyCode == 44) return false;
});
希望它有效