Как запросить адреса электронной почты на веб-странице с помощью JavaScript?

#javascript #regex #email #xpath #google-chrome-extension

Вопрос:

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

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

Почему я сканирую весь документ целиком?

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

метка, или в … вариантов бесконечное множество. Поэтому я не могу выполнить простой document.getElementsByTagName() или любой подобный запрос.

Один из способов, которым я думал о снижении операционных затрат, состоял в том, чтобы определить, в каком HTML-теге находится электронное письмо(ы). Я подумал о том, чтобы использовать Xpath и выбрать все узлы с текстом, содержащим»@», поскольку » @ » — это символ, который есть во всех электронных письмах… затем мне нужно только сравнить текстовое содержимое этих узлов с моим регулярным выражением электронной почты, чтобы увидеть, есть ли совпадение.

Тем не менее, когда я использую

Xpath = //текст()[содержит(.,’@’)]

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

Боттонная линия, операция по-прежнему очень дорогостоящая и приводит к сбою фоновых страниц.

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

Правильно ли я думаю о том, как подойти к этому? У кого-нибудь есть лучшая альтернатива?