问题描述
我试图阻止 ALT 在我的 Angular 应用程序的所有输入字段中使用。这是我尝试过的。
@HostListener('document:keyup',['$event'])
public handleKeyboardEvent(event: KeyboardEvent): void {
const keycode = event.key;
if (event.altKey ||
keycode.toLowerCase() == 'alt' ||
event.altKey === true ||
event.code == Constants.KeyCodes.AltRight ||
event.code == Constants.KeyCodes.AltLeft) {
event.returnValue = false;
event.preventDefault();
return;
}
}
此代码正确触发,但它不会阻止 Alt 组合键停止。例如,按 Alt + 5 会得到 ♣。奇怪的是,如果我添加一个断点并逐步执行代码,它会起作用,所以这就像一些奇怪的计时问题。
我将相同的代码添加到服务中,然后从 app.component 调用它,如下所示:
fromEvent(document,'keyup').subscribe((event: KeyboardEvent) => {
this.utilityService.altKeyBlocking(event);
})
fromEvent(document,'keydown').subscribe((event: KeyboardEvent) => {
this.utilityService.altKeyBlocking(event);
})
似乎唯一可行的是创建一个指令,并使用完全相同的代码将其添加到整个应用程序中的每个输入字段。
关于其他事情的想法我可以尝试在全球范围内实施。和平。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)