我看过一些网站(discord.hotjar),当标签处于非活动状态时,使用Visibility API显示一个项目符号,当它再次处于活动状态时,将其隐藏,

我们怎么做?

enter image description here

推荐答案

为此,您需要 for each 模式创建两个不同的favicon,并使用Visibility API在它们之间切换.类似这样:

// Set the name of the hidden property and the change event for visibility
let hidden;
let visibilityChange;
if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
  hidden = "hidden";
  visibilityChange = "visibilitychange";
} else if (typeof document.msHidden !== "undefined") {
  hidden = "msHidden";
  visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
  hidden = "webkitHidden";
  visibilityChange = "webkitvisibilitychange";
}

var link = document.querySelector("link[rel~='icon']");
if (!link) {
    link = document.createElement('link');
    link.rel = 'icon';
    document.getElementsByTagName('head')[0].appendChild(link);
}

function handleVisibilityChange() {
  if (document[hidden]) {
    link.href = 'https://www.linkpicture.com/q/favicon2.ico';
  } else {
    link.href = 'https://www.linkpicture.com/q/favicon1_1.ico';
  }
}

// Warn if the browser doesn't support addEventListener or the Page Visibility API
if (typeof document.addEventListener === "undefined" || hidden === undefined) {
  console.log("This demo requires a browser, such as Google Chrome or Firefox, that supports the Page Visibility API.");
} else {
  // Handle page visibility change
  document.addEventListener(visibilityChange, handleVisibilityChange, false);
}

Preview: enter image description here

Javascript相关问答推荐

为什么子组件没有在reaction中渲染?

调用SEARCH函数后,程序不会结束

如何按预期聚合SON数据?

在JavaScript中检索一些文本

TypScript界面中的Infer React子props

Plotly热图:在矩形上zoom 后将zoom 区域居中

如何禁用附加图标点击的v—自动完成事件

cypress中e2e测试上的Click()事件在Switch Element Plus组件上使用时不起作用

如何使onPaste事件与可拖动的HTML元素一起工作?

我怎么才能得到Kotlin的密文?

Html文件和客户端存储的相关问题,有没有可能?

如何迭代叔父元素的子HTML元素

JavaScript不重定向配置的PATH

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

将相关数据组合到两个不同的数组中

ComponentWillReceiveProps仍在React 18.2.0中工作

在Press Reaction本机和EXPO av上播放单个文件

Firebase函数中的FireStore WHERE子句无法执行

当S点击按钮时,我如何才能改变它的样式?

MAT-TREE更多文本边框对齐问题