如果选项卡未聚焦,MutationObserver 将无法工作

发布于 2025-01-11 11:40:14 字数 846 浏览 0 评论 0原文

我正在开发 chrome 扩展,并且 MutationObserver 有问题,不确定我是否遗漏了某些内容还是正常行为。 当我在使用突变的 chrome 选项卡上时,观察者会工作,当更改正常发生时,我会收到消息,但是当我不在选项卡上时,无论我在另一个选项卡上还是另一个窗口上,都不会发生任何事情,直到我回到我使用的选项卡突变。

例如,假设我在一个选项卡上使用 stackoverflow.com,我观察到突变一切正常,我得到了更改,然后我保持选项卡打开并切换到另一个选项卡,突变停止工作,就像我打开时 dom 没有更新一样另一个标签,直到我回来。

window.onload = () => {


  console.log("init observer");

  let mutationBinaryObserver = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
      if (
        mutation.target &&
        mutation.target.className &&
        typeof mutation.target.className === "string" &&
        mutation.target.className.indexOf("dialog-subtitle-badge") >= 0
      ) {
        getChatMessages();
      }
    });
  });
});

感谢您的帮助和建议,我的目标是使用我的计算机并从 Chrome 上的选项卡接收更新,即使我没有关注它。

I am working on a chrome extension and i have a problem with MutationObserver, not sure if i am missing something or it's the normal behavior.
The observer works when i am on the chrome tab which uses the mutation i receive messages when changes happens normal, but when i am not on tab, either i am on another tab or another window nothing happens until i comeback to the tab where i use mutation.

exemple let's say i use stackoverflow.com on a tab where i observe mutation all good i get the changes then i keep my tab open and i switch to another tab, the mutations stopped working like if the dom doesn't update when i am on another tab till i comeback.

window.onload = () => {


  console.log("init observer");

  let mutationBinaryObserver = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
      if (
        mutation.target &&
        mutation.target.className &&
        typeof mutation.target.className === "string" &&
        mutation.target.className.indexOf("dialog-subtitle-badge") >= 0
      ) {
        getChatMessages();
      }
    });
  });
});

Thanks for your help and advice, my goal is to be using my computer and receiving updates from a tab on chrome even if i am not focusing it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文