html - favicon to base64 在此站点上失败
问题描述
我编写了一个函数,通过拆分文档的<head>
<link>
标签来返回 favicon
rel="icon"
rel="shortcut icon"
function geticon(site,cb){
if(site.indexOf('http')==-1){site='http://'+site;}
$.get("https://mysite.me/middleman.php",{"site":site})
.always(function(d){
if(!d){cb('https://mysite.me/R/link.png',false);}
else{
d=d.split('<link ');
var ico='https://mysite.me/R/link.png';
for(var i=0;i<d.length;i+=1){
d[i]=d[i].split('>')[0];
if(d[i].indexOf('rel="icon"')!==-1||d[i].indexOf('rel="shortcut icon"')!==-1){
ico=(d[i].split('href="')[1]).split('"')[0];
break;
}}
site=(site.split('//')[1]).split('/')[0];
if(ico.indexOf(site)==-1&&ico.indexOf('http')!=0&&ico.indexOf('//')!=0){
if(ico[0]=='/'){ico=site+ico;}
else{ico=site+'/'+ico;}
}
if(ico.indexOf('http')==-1){
if(ico.indexOf('//')==0){ico='http:'+ico;}
else{ico='http://'+ico;}
}
if(!ico){cb('https://mysite.me/R/link.png',false);}
else{
getimg(ico,function(b,bool){cb(b,bool);});//returns base64 string
}}});}
但它无法使用此网址:
http://www.ipwatchdog.com/2012/09/07/uspto-issues-worlds-first-invisibility-cloak-patent/id=27841/
我查看了 url 的源代码,但无法识别代码中的 favicon,但浏览器选项卡确实有一张带放大镜的狗的图像!
我错过了什么?有多少种声明网站图标的方法?
解决方案
favicon 位于http://www.ipwatchdog.com/favicon.ico ,遵循 W3C 的How to Add a Favicon to your Site中的方法 2,其中列出了在网站上包含 favicon 的两种方法:
- 在链接标签中引用它。
- 将其放入域根目录下名为“favicon”的文件中。
推荐阅读
- c# - 使用 WCF 服务的 .NET Core API 中的异常处理
- scala - 如何将 UDAF 移植到聚合器?
- c++ - 为什么 __int128_t 在 x86-64 GCC 上比 long long 快?
- reactjs - 未捕获的错误:重新渲染过多。React 限制渲染次数以防止无限循环
- android - 如果数据库中存在名称,如何停止进程android
- mysql - mariadb 复制(主/从) - 由于删除查询执行时间长,从属滞后
- angular - 无法为接口对象赋值
- matlab - 如何从多个 .png 图像制作单个 256*256*N(双).mat
- winforms - 仅在 AutoSizeColumns 和 AutoSizeRows 之后对 DataGridView 的第一列定义自定义宽度
- junit - 如何对 Resilience4j 断路器回退方法进行单元测试