如何在angular 6 web应用程序中使用typescript防止f12和打印屏幕键。尝试添加js文件,但未触发文档事件。
您需要将以下内容组合在一起。
- 打印屏幕键的键代码为44
- F12键的键代码是123
- 要防止键的默认行为,请在事件实例上调用
Event#preventDefault
方法 - 要将事件绑定到
document
(与模板中可见的特定元素相反(,请使用前缀为document:
的@HostListener
装饰器 - 要在整个应用程序中绑定事件,请使用根应用程序组件(通常为
AppComponent
(
所以,你想做的事情如下。
@Component(/* ... */)
export class AppComponent {
// ...
@HostListener('document:keyup', ['$event'])
onKeyUp (event: KeyboardEvent) {
if (event.keyCode == '44' || event.keyCode == '123') {
event.preventDefault()
}
}
}
然而,请注意,您的"安全措施"是徒劳的,只会在用户真正想使用某个功能时让他们发疯。此外,在某些情况下,OS/Browser可能不关心您的意图(这是正确的方法(。没有什么可以阻止用户打开开发工具(例如,在Chrome中,您也可以使用ctrlshift<kbd&J>