Сценарий Google Apps получает события кода ключа из документа - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь изменить части документа Google, пока пользователь печатает.

В частности, я хочу добавить функцию для отступа в несколько строк текста. Это означает, что когда пользователь выбирает несколько строк текста, а затем нажимает клавишу «Tab», он должен иметь отступ для всех этих строк

. Чтобы сделать это, я думаю, что я должен получить текущий код ключа любого пользователя набрав, в дополнение к чтению выбора с помощью:

 var doc = DocumentApp.getActiveDocument().getCursor();
    var els = doc.getElement(),
    txt = els.asText().getText()

, который у меня уже работает. Но проблема:

на моей стороне клиента, когда я делаю:

window.addEventListener("keyup", function(e) {
        console.log(e.keyCode);
    })

, которая активируется только тогда, когда пользователь выбрал боковую панель, но не когда пользователь вводит в самом документе Google сам .

Я понимаю, почему это так, поскольку приложение запускается в iframe внутри iframe, но все же я подумал, что может быть способ каким-то образом получить нажатую клавишу или хотя бы каким-то образом определить, пытался ли пользователь нажимать клавишу табуляции или нет.

Итак: есть ли способ определить, нажал ли пользователь клавишу табуляции, или есть какой-то другой способ легко сделать отступ для нескольких строк с помощью скрипта приложений Google? Желательно, чтобы пользователь не нажимал кнопку на самом скрипте приложения, но если это единственный способ, пусть так и будет ... но есть ли какой-нибудь возможный способ узнать, какие клавиши были нажаты пользователем в Google Do c сама?

1 Ответ

2 голосов
/ 04 февраля 2020

Это невозможно в Google Docs. Вы запрашиваете триггер "onEdit" или "onChange", но, к сожалению, они доступны только в Google Sheets, а не в Docs. Вы можете использовать таблицу, указанную на этой странице Триггеры надстроек , чтобы увидеть, какие триггеры доступны во всех приложениях Script (не только надстройках).

...