Подтвердить что ты не робот

API Gmail расширения/гаджета - как добавить кнопку в панель инструментов компоновки?

Я пытаюсь выяснить, как добавить кнопку в окно компоновки Gmail.

В "Лабораториях Gmail" у них есть некоторые расширения, которые добавляют определенные кнопки. Например, кнопка "Отправить и архивировать" и кнопку "Вставка изображений", поэтому я предполагаю, что это возможно.

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

Вы знаете, как это можно сделать?

Если это невозможно с использованием API Gmail, есть ли другой способ добиться этого? Возможно, создав расширение Google Chrome или пользовательские скрипты?

Буду признателен за любую информацию, которая может направить меня в правильном направлении.

Спасибо.

4b9b3361

Ответ 1

Лаборатории Gmail имеют специальные разрешения, потому что они написаны сотрудниками Google, к сожалению, у нас нет такой силы. Конечно, есть способ, и вы правильно указали, что это сделать Расширение Chrome или UserScript. Если вы решите сделать расширение Chrome это будет просто оболочкой для UserScript в любом случае

Вам нужно будет создать и ввести программу программно. Это будет включать в себя довольно немного очистки исходного кода Gmail (спойлер: он уродливый).

Без дополнительной информации о том, что вы хотите сделать, я не смогу предоставить гораздо больше помощи, но я могу сразу помочь вам с одной проблемой. Вы должны сделать свой script до тех пор, пока не будет выполнен процесс загрузки Gmail, который является проблемой. Это решение, которое я сейчас использую в Minimalist:

function bootstrap() {
    target = document.querySelectorAll('.vt:not(.SFzvCe)');
    if (document.querySelectorAll('html.xiu1Fc, html.aao')[0] == null) {
        return;
    }
    if (target.length > 0) {
        // loaded, do stuff
    } else {
        window.setTimeout(bootstrap, 200);
    }
}
window.addEventListener('DOMSubtreeModified', bootstrap);

Эта версия ждет полной загрузки чата. Дайте мне знать, если у вас есть другие вопросы: @anstosa