JavaScript ярлык отправка событий не работает - PullRequest
0 голосов
/ 20 сентября 2018

Недавно таблицы Google обновлены, добавлена ​​боковая панель, а ее комбинация клавиш Ctrl + Alt + <</kbd> находится в конфликте с экранной клавиатурой Windows.(osk.exe)

Когда пользователь в режиме мандаринских фонетических символов нажимает сочетание клавиш "Ctrl + Alt + <", эта маленькая клавиатура будет отображаться.<a href="https://i.stack.imgur.com/RDRzs.png" rel="nofollow noreferrer">When user in Mandarin Phonetic Symbols mode keydown the shortcut

В электронных таблицах при нажатии клавиши Ctrl + Alt + <</kbd> он изменится на здесь.imageCtrl+Alt+<</kbd>, it'll change to here.">

Я хочу отключить этот ярлык только в электронных таблицах Google, поэтому я написал скрипт:

// ==UserScript==
// @name           Disable Shortcut: Ctrl+Alt+<
// @author         LianSheng142
// @version        0.1
// @match          https://docs.google.com/spreadsheets*
// @run-at         document-body
// ==/UserScript==

(function() {
    function disable() {
        // Ctrl + Alt + < (docs-cycle-focus-previous)
        if(event.ctrlKey && event.altKey && event.keyCode === 188){
            console.log('"CTRL+ALT+<" pressed.');

            var e = new KeyboardEvent("keydown", {altKey: true, ctrlKey: true, keyCode: 190});
            st.dispatchEvent(e);
        }
        // (listen) Ctrl + Alt + > (docs-cycle-focus-next)
        if(event.ctrlKey && event.altKey && event.keyCode === 190){
            console.log('"CTRL+ALT+>" sent.');
        }
    }
    var st = document.getElementsByTagName("body")[0];
    st.addEventListener("keydown", disable, false);
})();

Я попробовал этот скрипт на Ubuntu 16.04 и Chrome 69, это работает!Тем не менее, я попробовал это на Windows 7 и Chrome 69, где ведется журнал консоли, но затем экран не отправил Ctrl + Alt +> ...

Почему?


Мой английский немного плохой, извините.

...