Дождитесь загрузки комментариев Youtube и запустите функцию - PullRequest
0 голосов
/ 02 февраля 2020

так что вы знаете те сайты, на которых вам нужно ждать определенное количество времени, чтобы кнопка загрузки появилась после загрузки страницы. В этом случае, например, на YouTube, когда страница заканчивается, но вы также должны подождать некоторое время, пока комментарии покажутся. Так что проблема в том, что я хочу, чтобы мое расширение запускало или, по крайней мере, запускало функцию, когда определенный div страницы завершает загрузку в случае div комментариев. Я попытался "run_at": "document_end" в моем файле манифеста, как говорили некоторые стековые потоки, но он все еще не делает этого после загрузки комментариев. Я думаю, что это происходит после того, как страница закончила загрузку, но комментарии YouTube все еще загружаются после. Некоторые я использую в своем контенте что-то вроде setTimeout для 10000 миллисекунд. Файл js, который работает нормально, но некоторые комментарии могут загружаться быстрее, а некоторые медленнее, и я не хочу, чтобы один долго ожидал расширения загружать. Кто-нибудь получил помощь? Извините за длинную историю.

runAfter = _=> alert('Hi');
// I want that function to run after the comment section div has finished loading.
// I could use setTimeout for 10 seconds but it seems long to wait eg.
setTimeout(_=> { alert('Hi') }, 10000);

1 Ответ

1 голос
/ 04 февраля 2020

Вы можете попробовать опрос для видимости.

function waitForEl(el) {
  return new Promise((resolve, reject) => {
    const intervalId = setInterval(() => {
      if (document.querySelector(el)) {
        clearInterval(intervalId);
        resolve();
      }
    }, 500);
  });
}

waitForEl("#comments").then(() => {
  // comments should be loaded here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...