Javascript Chrome make favicon请求中的history.pushState

Javascript Chrome make favicon请求中的history.pushState,javascript,html,favicon,pushstate,Javascript,Html,Favicon,Pushstate,代码: var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname +"?"+ queryStr; window.history.pushState({path:newurl},'',newurl) <!-- Favicon --> <link rel="icon" type="image/png" href="../img/icon/fav

代码:

var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname +"?"+ queryStr; 
window.history.pushState({path:newurl},'',newurl)
<!-- Favicon -->
  <link rel="icon" type="image/png" href="../img/icon/favicon-16x16.png" sizes="16x16">
  <link rel="icon" type="image/png" href="../img/icon/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="../img/icon/favicon-96x96.png" sizes="96x96">
当前场景:

var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname +"?"+ queryStr; 
window.history.pushState({path:newurl},'',newurl)
<!-- Favicon -->
  <link rel="icon" type="image/png" href="../img/icon/favicon-16x16.png" sizes="16x16">
  <link rel="icon" type="image/png" href="../img/icon/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="../img/icon/favicon-96x96.png" sizes="96x96">
每次调用
window.history.pushState()
时,favicon请求都会快速发生。它会在每次调用此函数时向favicon发出网络请求

预期情景:

var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname +"?"+ queryStr; 
window.history.pushState({path:newurl},'',newurl)
<!-- Favicon -->
  <link rel="icon" type="image/png" href="../img/icon/favicon-16x16.png" sizes="16x16">
  <link rel="icon" type="image/png" href="../img/icon/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="../img/icon/favicon-96x96.png" sizes="96x96">
favicon应该在页面加载时只加载一次,我不希望在
window.history.pushState()的每个请求上都加载favicon

favicon路径在HTML页面中的链接如下:

var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname +"?"+ queryStr; 
window.history.pushState({path:newurl},'',newurl)
<!-- Favicon -->
  <link rel="icon" type="image/png" href="../img/icon/favicon-16x16.png" sizes="16x16">
  <link rel="icon" type="image/png" href="../img/icon/favicon-32x32.png" sizes="32x32">
  <link rel="icon" type="image/png" href="../img/icon/favicon-96x96.png" sizes="96x96">


任何直接的帮助都是非常值得的。谢谢

这看起来像是
Chromium
浏览器中的一个bug。见公开问题

但是如果使用
base64
image作为
href
请求将不会发生,那么似乎有一个解决方法

<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">


请参阅问题。

在Chrome中,当按住后退按钮时,您会看到历史记录中所有链接的列表,您可以选择一个。链接既有图标也有文本。在向历史添加内容时,对法维科的要求似乎很正常。我不会称之为虫子,似乎是合法的。我在回答中表达了我的怀疑
看起来像个bug,可能不是,这就是为什么它从2012年开始开放。感谢更新..所以这个问题有其他解决方案。我不想在每次调用window.history.pushState()时都加载favicon您可以将图标转换为
base64
图像,并将其放在
favicon
链接的
href
中。谢谢您的帮助:)