如何在Angle 6 Web应用程序中使用打字稿防止f12和打印屏幕按键

时间:2018-12-03 07:14:52

标签: angular web-applications angular6

如何在Angle 6 Web应用程序中使用Typescript防止f12和打印屏幕键。尝试添加js文件,但未触发文档事件。

1 个答案:

答案 0 :(得分:0)

您需要将以下内容结合在一起。

  • Print Screen键的键码是44。
  • F12键的密码是123。
  • 要防止键的默认行为,请在事件实例上调用Event#preventDefault方法。
  • 要将事件绑定到document(与模板中可见的特定元素相对),请使用带有@HostListener前缀的document:装饰器。
  • 要在整个应用程序中绑定事件,请使用根应用程序组件(通常为AppComponent)。

因此,您要做的是遵循以下几句话。

@Component(/* ... */)
export class AppComponent {
  // ...

  @HostListener('document:keyup', ['$event'])
  onKeyUp (event: KeyboardEvent) {
    if (event.keyCode == '44' || event.keyCode == '123') {
      event.preventDefault()
    }
  }
}

但是,请注意,您的“安全措施”是徒劳的,只会在用户真正想要使用功能时使他们发疯。另外,在某些情况下,OS /浏览器可能并不关心您的意图(这是正确的方法)。没有什么能阻止用户打开开发人员工具(例如,在Chrome中,您也可以通过 ctrl shift J 或使用浏览器的用户界面)。对于“窃取”图像,开发人员工具比捕获屏幕截图要方便得多。