Получите все из писем в Gmail через Jquery - PullRequest
1 голос
/ 16 июня 2020
• 1000 структура, которой я могу следовать:

Gmail structure

Я хочу иметь возможность l oop через каждый примерно так:

var map = {};
$(".activeInput").each(function() {
    map[$(this).attr("name")] = $(this).val();
});

alert(map.key1); 

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

В консоли, если я это сделаю:

$('[email]')

Он возвращает весь диапазон

Если я попробую:

$('tr span').attr("email");

Но я получаю: Uncaught TypeError: $ (...). attr не является функцией

И я пробовал несколько других вариантов безуспешно, так что надеюсь, что кто-нибудь укажет мне правильное направление.

1 Ответ

1 голос
/ 16 июня 2020

На самом деле $ на странице Gmail не является экземпляром jQuery, вместо этого он относится к Chrome API консольных утилит

Как упоминалось в приведенных выше документах:

$ (selector, [startNode])


$(selector) возвращает ссылку на первый элемент DOM с указанным селектором CSS . При вызове с одним аргументом эта функция является псевдонимом для функции document.querySelector().

Теперь в вашем случае:

$('tr span').attr("email");

Мы могли бы просто использовать $$(selector) что эквивалентно вызову document.querySelectorAll() в консоли chrome, но похоже, что Gmail отключил его. Итак, вместо этого вы можете попробовать:

var spans = document.querySelectorAll('tr [email]');
var emails = [...spans].map(x => x.getAttribute('email'))
console.log(emails)

Это вернет все электронные письма в переменной массива emails

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