Javascript event.altKey未返回任何内容

Javascript event.altKey未返回任何内容,javascript,angular,Javascript,Angular,如果按下Alt按钮,我正试图显示/隐藏一个div。我正在听按键,并使用event.altKey确定是否按下了alt/option。但这不起作用。所以我记录了这件事 @HostListener( 'document:keypress', [ '$event' ]) handleKeyboardEvent( event: KeyboardEvent ) { console.log( event.altKey ); } 在上面的代码中,如果我按下任何数字、字母或符号,它将按预期打印“fals

如果按下Alt按钮,我正试图显示/隐藏一个div。我正在听按键,并使用
event.altKey
确定是否按下了alt/option。但这不起作用。所以我记录了这件事

@HostListener( 'document:keypress', [ '$event' ])
handleKeyboardEvent( event: KeyboardEvent ) {
    console.log( event.altKey );
}
在上面的代码中,如果我按下任何数字、字母或符号,它将按预期打印“false”。但当我按下Alt、Ctrl、Shift、Tab键时,什么也没发生。它不打印真假

我还试着打印钥匙密码。除了“Alt、Ctrl、Shift、Tab”之外,它可以打印所有内容


我在这里做错了什么?

按键没有检测到某些键,alt必须是这些键之一。我会尝试使用另一个名为
onkeydown
的事件。它可以检测到更多的钥匙。以下是有关keydown事件的更多信息:

Keypress未检测到某些键,alt必须是这些键之一。我会尝试使用另一个名为
onkeydown
的事件。它可以检测到更多的钥匙。以下是有关按键按下事件的更多信息:

您可以为
alt
按键功能选择以下功能:

function isKeyPressed(event) {
    if (event.altKey) {
        console.log("The ALT key was pressed!");
    } else {
        console.log("The ALT key was NOT pressed!");
    }
}

在html中使用
onkeydown=“isKeyPressed(event)”
作为标记

您可以为
alt
键函数使用以下函数:

function isKeyPressed(event) {
    if (event.altKey) {
        console.log("The ALT key was pressed!");
    } else {
        console.log("The ALT key was NOT pressed!");
    }
}

在html中使用
onkeydown=“isKeyPressed(event)”
作为标记

您可以在
@组件
装饰器中尝试
主机属性

@Component({
  ...
  host: {
    '(document:keypress)': 'handleKeyboardEvent($event)'
  }
})
export class AppComponent {
  handleKeyboardEvent(event: KeyboardEvent) {
    console.log(event);
  }
}
建议在主机属性上使用@HostListener装饰器

您可以在
@Component
装饰器中尝试
主机属性

@Component({
  ...
  host: {
    '(document:keypress)': 'handleKeyboardEvent($event)'
  }
})
export class AppComponent {
  handleKeyboardEvent(event: KeyboardEvent) {
    console.log(event);
  }
}
建议在主机属性上使用@HostListener装饰器

keypress也会重复发射。keypress也会重复发射。您可以尝试event.which | | event.keyCode吗?您可以尝试event.which | | event.keyCode吗?