温馨提示:本文翻译自stackoverflow.com,查看原文请点击:javascript - Wait for Youtube comments to load then run function
google-chrome google-chrome-extension javascript

javascript - 等待Youtube评论加载然后运行功能

发布于 2020-04-11 23:03:36

因此,您知道那些页面加载后必须等待一定时间才能使下载按钮出现的站点。在这种情况下,例如YouTube,页面加载完成,但是您还需要等待一段时间才能显示评论。所以问题是我要我的扩展在页面的某个div完成加载的情况下运行或至少运行一个函数(以注释div为例)。我已经尝试"run_at": "document_end"了我的清单文件中的某些stackoverflows所说的内容,但是在加载注释后仍然没有执行该操作。我认为这是在页面完成加载后进行的,但是Youtube注释仍在加载后。有些我正在使用类似的东西setTimeout我的content.js文件中的时间为10000毫秒,效果很好,但问题是某些注释的加载速度可能会更快,而某些注释的加载速度会变慢,并且我不想等待扩展加载的时间太长。有人得到帮助吗?抱歉,长话短说。

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);

查看更多

提问者
Mafia
被浏览
27
Ben Lorantfy 2020-02-05 01:23

您可以尝试轮询以获取可见性。

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
});