从亚马逊,eBay等网站中提取.ico图标

时间:2015-12-15 20:50:19

标签: javascript html

我有一个代码解析一个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.comhttp://www.amazon.com等网站时,他们的DOM标题中都没有.ico图像,但品牌的.ico图像会照常显示。

我的问题是: 我们是否有其他方法可以将.ico图像附加到上面提到的方式之外,或者它们是如何做到的?

3 个答案:

答案 0 :(得分:5)

如果未指定favicon,大多数浏览器将在根目录中查找favicon.icoEbay 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。