如果选项卡未聚焦,MutationObserver 将无法工作
我正在开发 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论