gpt4 book ai didi

javascript - Chrome 非事件标签不执行 setInterval

转载 作者:行者123 更新时间:2023-11-30 19:22:33 24 4
gpt4 key购买 nike

我喜欢在工作时使用 Chrome 标签在 Youtube 上听音乐,但每隔一小时音乐就会停止并显示一条消息“你还在吗?”显示在上面。是的,我仍然在那里,就像每天一样,一天 7 次:)

所以我安装了一个名为“Custom Stylesheet & Script”的 Chrome 扩展来运行这个简单的 JavaScript 东西:

setInterval(function(){
let overlay = document.querySelector('iron-overlay-backdrop');
if(overlay) overlay.click();
}, 1000);

效果很好,但前提是我在 YouTube 标签上。如果我正在处理另一个音乐最终会停止,我必须单击 YT 选项卡才能运行此 JavaScript(所以毕竟不是真正的胜利)。

我发现一些帖子提到非事件选项卡中的 setInterval 具有低优先级并且每秒只会触发一次或两次,在我的情况下它们根本不会触发。

感谢您提供有关要查看的内容的任何提示:)

最佳答案

经过一些测试,我发现如果 chrome 选项卡未激活,YouTube 会禁用点击“确定”按钮进行确认,毕竟 setInterval 工作正常。

如果有人感兴趣,我尝试了 wOxxOm 建议的 MutationObserver 方法,而不是单击确认按钮,我只是重新加载页面。

这是我现在使用的代码:

if(-1 !== window.location.host.indexOf('youtube')) {
document.addEventListener('DOMContentLoaded', (event) => {

let popupContainer = document.querySelector('ytd-popup-container');

let observer = new MutationObserver(function(mutationsList) {
let confirmButton = popupContainer.querySelector('.yt-confirm-dialog-renderer paper-button');
if(confirmButton){
// confirmButton.click();
document.location.reload(true);
}
});

observer.observe(popupContainer, {childList: true});
});
}

关于javascript - Chrome 非事件标签不执行 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com