我有一个代码解析一个html页面的标题,寻找以下列方式声明的ICO图像:
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
例如代码:
image = htmlDoc.querySelector('link[rel="shortcut icon"]');
if (image) {
imageUrl = image.getAttribute('href');
}
(我没有跨浏览器问题,因为我有扩展程序的权限)
问题在于,每当我访问http://www.ebay.com或http://www.amazon.com等网站时,他们的DOM标题中都没有.ico图像,但品牌的.ico图像会照常显示。
我的问题是: 我们是否有其他方法可以将.ico图像附加到上面提到的方式之外,或者它们是如何做到的?
答案 0 :(得分:5)
如果未指定favicon,大多数浏览器将在根目录中查找favicon.ico
。 Ebay has such an icon这就是为什么favicon正在展示,即使它没有在代码中声明。
您可能有兴趣知道Google有一个小的赞助商API,因此您可能不需要自己实施。
只需创建一个图片代码,然后将src
设置为以下内容:
http://www.google.com/s2/favicons?domain=amazon.com
...你会得到亚马逊的图标。
答案 1 :(得分:4)
Favicons也可以放到网站根目录下,大多数浏览器都会尝试在那里搜索它们。
例如,请参阅http://www.ebay.com/favicon.ico了解易趣图标或http://www.amazon.com/favicon.ico了解亚马逊图标。
答案 2 :(得分:2)
根据W3,有两种方法可以将网站添加到网站;
方法1:
rel属性可用于添加favicon。
示例:<link rel="icon" type="image/png" href="http://example.com/myicon.png">
方法2:
使用预定义路径。某些浏览器会自动检查此路径并显示favicon(如果存在)。
favicon的预定义路径是"/favicon.ico"
对服务器的根文件夹。
您提到的没有链接rel标签的网站正在使用第二种方法。您可以通过直接查询预定义的URI来获取favicon。