这个 Stack Exchange 网站怎么会有动画图标?

Glo*_*del 85 browser favicon

昨天我在https://stackexchange.com 上浏览,注意到所有 Stack Exchange列表都有一个动画图标:

在此处输入图片说明

这怎么可能?我以为网站图标是静态的 ICO 文件,不能制作动画?

R..*_*ICE 95

这是臭名昭著的错误 111373,它在去年赢得了投票权,我希望再多买几杯酒。

  • +1 我以为你在开玩笑,但你不是 (12认同)
  • Bug 111373 18 年前打开 7 个月前更新 (3认同)
  • 最好的部分是他们如何通过允许 javascript 在不使用动画 gif 的情况下为网站图标设置动画来*扩展*错误(我认为这实际上是这里 OP 问题中发生的事情),然后利用他们扩展了错误的事实来试图证明将原始错误视为非错误而不是修复两者。 (2认同)

Glo*_*del 69

事实证明,动画图标实际上是可能的,有些网站有它们:请参阅如何禁用动画图标?.

但是这个特殊的实例不是由 Stack Exchange 网站引起的;事实证明,我在 Violentmonkey 中有一个该页面的用户脚本,它(在后台)对列表中每个网站的帮助中心执行 HTTP 调用。不知何故(我不知道确切的细节)这些网站的图标也被加载并应用于 Firefox 选项卡,从而产生动画。最后一个调用是 Stack Overflow,以便图标保持最终状态。

如果你想亲自体验,你可以安装最流行的 Stack Exchange 用户脚本:全局标志摘要——它也显示了这种行为。我不确定这在哪些设置(用户脚本管理器/浏览器/操作系统)中有效,但我在 macOS 10.14.6 上的 Firefox 69.0.1 中运行 Violentmonkey v2.11.2。

  • 我刚刚为 Global Flag Summary 用户脚本提交了 [一个解决这个问题的拉取请求](https://github.com/Floern/stackoverflow/pull/8)。对于其他可能存在类似错误的脚本,一般的修复方法是使用 [DOMParser](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser) 从加载的页面中安全地解析 HTML背景,而不是将其注入在当前页面的 DOM 上下文中创建的元素中。 (9认同)
  • @IlmariKaronen 对我来说似乎更像是一个功能而不是一个错误,至少在这种情况下:-) (3认同)

Mne*_*quo 23

Favicon 可以使用 javascript 进行动画处理。

我最喜欢的例子:http : //www.p01.org/defender_of_the_favicon/

这是一款可玩的游戏,它使用 16x16px 的图标作为其显示。


FTh*_*son 11

对于大多数浏览器,网站图标是静态图像文件,但网站可以利用 JavaScript 来修改当前显示的网站图标,从而有效地对其进行动画处理。Firefox 还允许使用 GIF 类型的图标并相应地播放动画。

有关动画图标的各种实现,请参阅此堆栈溢出线程