Как мое расширение Chrome может прослушивать открытие окна Compose в Gmail? - PullRequest
0 голосов
/ 09 ноября 2019

Я пишу расширение Google Chrome для Gmail, которое изменяет окно «Создать». Он прекрасно работает всякий раз, когда я обновляю страницу и открываю окно «Создать» после обновления страницы, но в следующий раз, когда я открываю окно «Создать» (без обновления Gmail), скрипт содержимого не загружается. Мой сценарий контента начинается следующим образом:

updateContent.js:

document.addEventListener('DOMContentLoaded', addUpdateButton, true);

addUpdateButton();

.
.
.

Очевидно, прослушивание DOMContentLoaded - это не то, что я хочу, так что я слушаю? Соответствующая часть моего манифеста выглядит так:

"content_scripts": [
{"run_at": "document_end",
 "matches": ["https://mail.google.com/mail/*"],
 "js": ["updateContent.js", "colorHeaders.js", "renderContent.js", "sendOptions.js", 
 "base64.js", "jsaes.js"]
}
],

1 Ответ

0 голосов
/ 12 ноября 2019

Я решил свою проблему, добавив следующий код в один из моих скриптов содержимого:

            // Listen for Compose button-click
        var composeButton = document.getElementsByClassName('T-I J-J5-Ji T-I-KE L3');
        composeButton[0].addEventListener("click", addUpdateButton);

Я добавил код в нижней части функции, которая вызывается только после завершения загрузки страницы (япроверять каждые 200 мсек, чтобы увидеть, завершена ли загрузка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...