Я создаю расширение chrome, в котором он обнаруживает нажатие клавиш на клавиатуре. Вот как выглядит мой скрипт содержимого:
window.addEventListener('keydown',function (evt) {
evt = evt || window.event;
var HKdetect='';
if ("key" in evt) {
if (evt.key === "Escape" || evt.key === "Esc") {
HKdetect = 'esc';
} else if (evt.key === "Space" || evt.key === " ") {
HKdetect = 'spc';
}
}
if (HKdetect != '') {
chrome.runtime.sendMessage({ hkpressed: HKdetect, actvURL: location.href }, function (response) {
});
}
});
Этот код работает нормально, если страница не вызывает ошибок Например, событие keydown
не запускается, когда я получаю сообщение об ошибке подключения (то есть недействительный сертификат SSL).
Я предполагаю, что window.onkeydown запускается только после успешного установления соединения с сервером .
В идеале, существует способ обнаружения ошибок веб-сокета из расширения chrome (страница содержимого или фоновая страница), но я не смог выяснить, как прослушивать события существующего веб-сокета (не события недавно созданный веб-сокет).
Мы очень ценим любую помощь в обнаружении нажатий клавиш в случае ошибки подключения к странице.