网站图标(“收藏夹图标”的简称)是浏览器地址栏中显示的小图标。网站图标通常用于识别和区分网站。 本文介绍了如何在 Manifest V3 扩展程序中检索网站的网站图标。
访问网站的网站图标
若要检索网站的网站图标,您需要构建以下网址:
chrome-extension://EXTENSION_ID/_favicon/?pageUrl=EXAMPLE_URL&size=FAV_SIZE
EXTENSION_ID
- 扩展程序的 ID。
EXAMPLE_URL
- 网站图标网站的网址。
FAV_SIZE
- 网站图标的大小。最常见的尺寸是 16 x 16 像素。
以下步骤介绍了如何在 Chrome 扩展程序中构建此网址:
第 1 步:更新清单
首先,您必须在清单中请求 "favicon"
权限。
{
"name": "Favicon API in a popup",
"manifest_version": 3,
...
"permissions": ["favicon"],
...
}
此外,在内容脚本中提取网站图标时,必须将 "_favicon/*"
文件夹声明为网络可访问的资源。例如:
{
"name": "Favicon API in content scripts",
"manifest_version": 3,
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"permissions": ["favicon"],
"web_accessible_resources": [
{
"resources": ["_favicon/*"],
"matches": ["<all_urls>"],
"extension_ids": ["*"]
}
]
...
}
第 2 步:构建网址
以下函数使用 runtime.getURL()
创建指向 "_favicon/"
文件夹的完全限定网址。然后,该方法会返回包含若干查询参数的新字符串,以表示该网址。最后,该扩展程序会将图片附加到正文。
function faviconURL(u) {
const url = new URL(chrome.runtime.getURL("/_favicon/"));
url.searchParams.set("pageUrl", u);
url.searchParams.set("size", "32");
return url.toString();
}
const img = document.createElement('img');
img.src = faviconURL("https://www.google.com")
document.body.appendChild(img);
以下示例是包含随机扩展程序 ID 的 32 像素 www.google.com
网站图标网址:
chrome-extension://eghkbfdcoeikaepkldhfgphlaiojonpc/_favicon/?pageUrl=https%3A%2F%2Fwww.google.com&size=32
扩展程序示例
chrome-extension-samples 代码库中有两个网站图标示例: