从 firefox 扩展中检索网站的 favicon url

发布于 2024-12-12 17:51:09 字数 49 浏览 3 评论 0原文

我想在网站加载后检索该网站的图标网址。我如何为我的 Firefox 扩展实现此功能。

I want to retrieve the favicon url of the website once it is loaded. How can I implement this for my firefox extension.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

捂风挽笑 2024-12-19 17:51:09

您可以使用 nsIFaviconService,它会缓存已知页面的图标。沿着这些思路:

var faviconService = Components.classes["@mozilla.org/browser/favicon-service;1"]
                               .getService(Components.interfaces.nsIFaviconService);
var favicon = faviconService.getFaviconImageForPage(gBrowser.currentURI);
alert(favicon.spec);

请注意,它适用于 nsIURI 对象,而不是用字符串。您可以使用 nsIIOService.newURI() 获取 nsIURI 字符串对象。

是的,我意识到我在复制 karthik 的答案 - 但它没有解释,只有一个虚假的代码示例。

You can use nsIFaviconService, it caches favicons for known pages. Along these lines:

var faviconService = Components.classes["@mozilla.org/browser/favicon-service;1"]
                               .getService(Components.interfaces.nsIFaviconService);
var favicon = faviconService.getFaviconImageForPage(gBrowser.currentURI);
alert(favicon.spec);

Please note that it works with nsIURI objects, not with strings. You can use nsIIOService.newURI() to get an nsIURI object from a string.

Yes, I realize that I am duplicating karthik's answer - but it has no explanation and only a bogus code example.

她如夕阳 2024-12-19 17:51:09

https://developer.mozilla.org/en/nsIFaviconService
https://developer.mozilla.org/en/Using_the_Places_favicon_service

请仔细阅读该页面。您可以使用下面定义的服务:

nsIServiceManager serviceManager = 
Mozilla.getInstance().getServiceManager(); 
nsIFaviconService service = 
(nsIFaviconService)serviceManager.getServiceByContractID("@mozilla.org/brows 
er/favicon-service;1", nsIFaviconService.NS_IFAVICONSERVICE_IID); 

https://developer.mozilla.org/en/nsIFaviconService
https://developer.mozilla.org/en/Using_the_Places_favicon_service

Please read the page carefully. You can use the service defined below:

nsIServiceManager serviceManager = 
Mozilla.getInstance().getServiceManager(); 
nsIFaviconService service = 
(nsIFaviconService)serviceManager.getServiceByContractID("@mozilla.org/brows 
er/favicon-service;1", nsIFaviconService.NS_IFAVICONSERVICE_IID); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文