javascript - visibilitychange 未按预期运行

标签 javascript

visibilitychange 的 MDN 页面声明“当选项卡的内容变得可见或隐藏时,它被触发”。但是,当我运行以下代码片段时,我立即收到无限的警报链,因此它显然不断被触发。为什么会这样?

function doEverything() {
    if(document.visibilityState == 'visible') {
        alert(document.visibilityState);
        document.removeEventListener("visibilitychange", doEverything());
    }
}

document.addEventListener("visibilitychange", doEverything());

最佳答案

您正在调用函数而不是将其作为参数传递。

document.addEventListener("visibilitychange", doEverything);

document.removeEventListener("visibilitychange", doEverything);

关于javascript - visibilitychange 未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29993783/

相关文章:

javascript - 从Javascript中的字符串中提取以某个字符开头的单词

javascript - 你如何将 HTML 插入到 QuillJS 中?

javascript - dataTables 将 css 类分配给分页包装器

javascript - 前端连接到后端

javascript - 暂停 HTML5 视频以减轻资源负载?

javascript - 不可变js的递归分组

javascript - 如何解决 audio.play() 的问题?在 react

javascript - javascript 第一次未绘制图像

javascript - href 没有链接到外部 url

javascript - 在特定时间段内使用 JavaScript 更改 HTML 元素的背景颜色?