Обнаружить клавиши CTRL и SHIFT без события нажатия клавиши?
Мне было интересно, могу ли я обнаружить нажатие клавиш CTRL и SHIFT БЕЗ использования события keydown.
Причина в том, что я создаю своего рода Grid Viewer в JavaScript, и я реализовал выделение различных элементов, удерживая клавишу CTRL или SHIFT, так как это работает в большинстве распространенных программ просмотра, редакторов и так далее.
Проблема в том, что когда фокус находится нигде на странице. Например я добавляю страницу в закладки. Затем я удерживаю CTRL или SHIFT и нажимаю на элемент, но он работает нормально, так как нажатие на клавишу еще не было запущено.
Любой способ пропустить это? Возможно, нет, но это может сбить с толку клиентов, которые будут воспринимать это как мою собственную очевидную ошибку.
1 ответ
Вам не нужны какие-либо ключевые события для обнаружения Shift, Ctrl и Alt при щелчке мышью по MDN.
Объект Event содержит эту информацию:
element.addEventListener('click', function (e) {
console.log(e.shiftKey);
console.log(e.ctrlKey);
console.log(e.altKey);
});
Эти свойства можно прочитать также в обработчиках событий клавиатуры.