最近两天看到了自己博客圆之前添加的ICON图标变成了博客园官方提供的默认图标:
https://assets.cnblogs.com/favicon_v3_preview.ico?v=4
所以就去看了下是啥原因,及如何修改,大概率是博客园官方统一修改了代码,导致之前在
“首页HTML”里面写的js失效了
下面来说如何解决:
之前的js代码:
<script type="text/javascript" language="javascript">
//Setting ico for cnblogs
var linkObject = document.createElement('link');
linkObject.rel = "shortcut icon";
linkObject.href = "https://blog-static.cnblogs.com/files/zhangzhixi/favicon.ico?t=1689154939&download=true";
document.getElementsByTagName("head")[0].appendChild(linkObject);
</script>
现在需要修改成:
<script>
// 获取link元素
var faviconLink = document.getElementById('favicon');
// 修改href属性
faviconLink.href = "https://blog-static.cnblogs.com/files/zhangzhixi/favicon.ico?t=1689154939&download=true";
// 如果需要立即生效(某些浏览器可能需要刷新才能看到变化)
if (".ReloadFavicon" in window) {
// 对于支持直接刷新favicon的现代浏览器
window.ReloadFavicon();
} else {
// 对于不支持直接刷新的浏览器,可以尝试创建一个新的link元素来强制刷新
var newFavicon = document.createElement('link');
newFavicon.rel = 'shortcut icon';
newFavicon.href = faviconLink.href;
document.head.appendChild(newFavicon);
document.head.removeChild(faviconLink);
}
</script>