Nano Hash - криптовалюты, майнинг, программирование

Документы Google имитируют клавиатуру

Мне нужно смоделировать клавиатуру в документах Google с использованием JavaScript, чтобы иметь возможность печатать или стирать символы в позиции курсора.
К сожалению, решения с имитацией события нажатия клавиши у меня не работали. Я пробовал с jQuery и без него.
После некоторого расследования я обнаружил, что в Документах Google есть виртуальная клавиатура. Нажатие на виртуальные клавиши вызывает эту функцию:

C.MOa = function(a) {
  this.dispatchEvent(new Q(Td, {keyCode: a}))
};

Где Td - строка «действие», а Q некоторый класс Event.
Как правильно отправить это событие с помощью сценария java? Есть ли другие способы имитации клавиатуры в Google Документах?


  • Так же, как примечание о событии jQuery: события, генерируемые с помощью $(elm).trigger(yourEvent), не являются реальными событиями и не вызывают реального всплытия DOM (по крайней мере, в последний раз, когда я просматривал jQuery), причина этого события обнаруживается только самим jQuery. 08.12.2014

Ответы:


1

Похоже, в Документах Google есть специальный iframe для обработки событий клавиатуры. Вот его содержание:

<html>
    <head></head>
    <body spellcheck="false" role="textbox" aria-label="Document content" contenteditable="true" style="background-color: transparent;"></body>
</html>

Просто отправьте события клавиатуры в этот документ, чтобы печатать символы в документе Google.

09.12.2014
  • есть ли аналог этого для таблиц Google? 23.07.2021

  • 2

    Вставьте следующий код в консоль документов Google.

    const input = document.querySelector(".docs-texteventtarget-iframe").contentDocument.activeElement;
        
    // Insert the character in the document and trigger the save API call
    const eventObj = document.createEvent("Event");
    eventObj.initEvent("keypress", true, true);
    eventObj.keyCode = 105;
    input.dispatchEvent(eventObj);
    

    Вы увидите символ, который я вставляю в документ.

    26.08.2020
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..