Имитация события клавиатуры с помощью Firefox

Я пытаюсь вызвать событие нажатия клавиши cntl-b в Firefox, чтобы исключить боковую панель. Код, который я использую

function assignOnclick()
{
var evt = document.createEvent("KeyboardEvent");
evt.initKeyboardEvent("keydown", true, true, window,
true, false, false, false,
"b", 0);
document.dispatchEvent(evt);

Функция assignOnclick вызывается другой функцией, которая выполняется с помощью оператора onload в теле. Я изменил код, чтобы проверить логическое возвращаемое значение, которое является истинным. Судя по всему, Firefox либо игнорирует это, либо я делаю это неправильно. Кстати, ввод cntl-b на клавиатуре удаляет боковую панель. Любая помощь приветствуется.


person Jasgdunn    schedule 29.10.2019    source источник


Ответы (1)


document.addEventListener('keydown', function(e) {
    console.log(  'keydown:' + (e.code ? e.code : e.key));
   
});

document.addEventListener('keyup', function(e) {
    console.log(  'keyup:' + (e.code ? e.code : e.key));
});

document.addEventListener('keypress', function(e) {
     console.log(  'keypress:' +  (e.code ? e.code : e.key) );
});
var e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "Control", code : "ControlLeft", ctrlKey : true});
document.dispatchEvent(e);
 e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "B", char : "B", ctrlKey : true});
document.dispatchEvent(e);
 e = new KeyboardEvent("keypress", {bubbles : true, cancelable : true, code : "KeyB", ctrlKey : true});
document.dispatchEvent(e);
 e = new KeyboardEvent("keyup", {bubbles : true, cancelable : true, key : "B", char : "B", ctrlKey : true});
document.dispatchEvent(e);
 e = new KeyboardEvent("keyup", {bubbles : true, cancelable : true, key : "Control", code : "ControlLeft", ctrlKey : true});
document.dispatchEvent(e);

если это не работает, метод «dispatchEvent» может быть заблокирован. Посмотрите на это, если это не так. не работаю

person Efe Zeybek    schedule 05.11.2019