Как определить адрес электронной почты пользователя, вошедшего в систему в данный момент, с веб-страницы входящих сообщений Gmail (https://mail.google.com/mail/u/0/#inbox) - PullRequest
0 голосов
/ 30 октября 2019

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

Если пользователь вошел в несколько учетных записей Gmail (например, a@gmail.com и b @ gmail. com), я хочу убедиться, что мой скрипт запускается только для учетной записи, с которой он вошел в мое расширение. Таким образом, в основном, если он вошел в мое расширение с помощью a@gmail.com, сценарий должен запускаться только на веб-странице входящих сообщений gmail a@gmail.com, а не на веб-странице входящих сообщений gmail b@gmail.com

Вот как я справляюсь с этим прямо сейчас: когда мой скрипт контента запускается на веб-странице gmail.com, он получает адрес электронной почты текущего зарегистрированного аккаунта, забирая его из пользовательского интерфейса Gmail (адрес электронной почты можно увидетькогда вы нажимаете на иконку профиля пользователя в правом верхнем углу.

Однако этот код прерывается каждый раз, когда Gmail обновляет свой пользовательский интерфейс.

Есть ли лучший способ получить адрес электронной почтызарегистрированный в данный момент пользователь с веб-страницы входящих сообщений gmail, в идеале - тот, который не изменяет пользовательский интерфейс Gmail?

1 Ответ

0 голосов
/ 30 октября 2019

Раньше у меня была такая же проблема, и самый надежный способ, который я нашел, это получить адрес электронной почты из заголовка вкладки. До сих пор он был устойчив к изменениям пользовательского интерфейса Gmail.

const title = document.querySelector('title').innerHTML;
const email = title.match(/(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))/)[0];

RegEx от emailregex.com

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