javascript - 如何检测退格键是否被保留

标签 javascript angular

我如何检测退格键是否被按下并在 js 中保持。我设置了事件监听器,但每次按下退格键时它都会触发我需要区分按下和按住吗?

HTML 输入:

(keydown)="fixIePosition($event);

TS 回调:

fixIePosition(e) {

    if ((navigator.userAgent.indexOf('Trident') !== -1 ||
        navigator.userAgent.indexOf('Edge') !== -1)
        && e.keyCode === 8) {
        const selectionStart = e.target.selectionStart;

        if (selectionStart === 3) {
            e.target.setSelectionRange(3, 3);
        // } else if (selectionStart === 5 && e.type === 'keydown') {
        //     console.log(e);
        //    // e.target.setSelectionRange(selectionStart, selectionStart);
        //     this.ieFixPosition = true;
        } else if (selectionStart === 4 && e.type === 'keyup') {
            if (this.ieFixPosition) {
                e.target.setSelectionRange(selectionStart, selectionStart);
                this.ieFixPosition = false;
            } else {
                e.target.setSelectionRange(selectionStart - 1, selectionStart - 1);
            }
        }
    }
}

最佳答案

你可以试试键盘事件repeat检测按键保持。

document.addEventListener('keydown', (event) => {
        if (event.repeat) {
            // Key Hold Event
        } else {
            // Key Press Event
        }
    });

关于javascript - 如何检测退格键是否被保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57274584/

相关文章:

angular - 在捕获到故障后,如何允许我的 HTTP 请求继续通过我的应用程序传播?

javascript - 遍历 json 以检查某些数据是否存在(如果不显示)不使用 ngFor 和 ngIf

javascript - 当文本具有特殊字符时,offsetWidth 无法正确计算

angular - 使用 mat-paginator angular 5 Material 显示页码

Angular Material主题化/改变边界半径

javascript - 即使不在网站上,服务人员也会发送推送通知

html - 更改垫进度条 "aria-valuemax"

javascript - 如何获取以下语句的高度 - angular.element ('<div>content</div>' )?

javascript - 使用 JQuery 倒数百分比

javascript - 如果其任何一个子级获得焦点,则防止触发模糊事件