网站图标(简称“收藏夹图标”)是显示在浏览器地址栏中的一个小图标。favicon 通常用于识别和区分网站。本文介绍了如何在 Manifest V3 扩展程序中检索网站的网站图标。
访问网站的图标
如需检索网站的 Favicon,您需要构建以下网址:
chrome-extension://EXTENSION_ID/_favicon/?pageUrl=EXAMPLE_URL&size=FAV_SIZE EXTENSION_ID- 扩展程序的 ID。
EXAMPLE_URL- 网站图标所属网站的网址。
FAV_SIZE- favicon 的大小。最常见的尺寸为 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 的 www.google.com 32 像素的 Favicon 网址:
chrome-extension://eghkbfdcoeikaepkldhfgphlaiojonpc/_favicon/?pageUrl=https%3A%2F%2Fwww.google.com&size=32 扩展程序示例
chrome-extension-samples 代码库中有两个网站图标示例: