favicon to base64在此站点上失败

时间:2018-05-29 18:52:35

标签: html favicon

我编写了一个函数,通过拆分文档的<head> <link>标记来返回图标

  • 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/

我查看了网址的源代码但无法识别代码中的网站图标,但浏览器标签确实显示了带放大镜的狗图片!

我错过了什么?有多少种宣布图标的方式?

1 个答案:

答案 0 :(得分:1)

favicon位于http://www.ipwatchdog.com/favicon.ico,位于W3C How to Add a Favicon to your Site中的方法2之后,其中列出了在网站上添加favicon的两种方法:

  1. 在链接标记中引用它。
  2. 将其放在域根目录下名为“favicon”的文件中。