首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取url的图标并显示它(firefox web-ext)

获取url的图标并显示它(firefox web-ext)
EN

Stack Overflow用户
提问于 2017-09-22 17:07:43
回答 3查看 2.4K关注 0票数 1

我正在做一个火狐网站。有没有一种方法可以让我得到当前网站/标签的偏爱。我提到了,但我不认为%c works anymore.This是我的manifest.json (它是其中的一部分):

代码语言:javascript
复制
"permissions": [
  "storage",
  "<all_urls>",
  "tabs",
  "activeTab"
],

"browser_action": {
  "default_icon": "icons/love.ico",
  "default_title": "Show URL and Favicon",
  "default_popup": "popup/addsite.html"
}

addsite.js文件如下所示:

代码语言:javascript
复制
var addnewsite = document.querySelector('.addnewbutton');
var siteContainer = document.querySelector('.site-container');
addnewsite.addEventListener('click', addNEWsite);

function onError(error) {
  console.log('Error: ${error}');
}//generic error handler

function addNEWsite(){
    siteurl();
    function siteurl(){
        browser.tabs.query({ currentWindow: true, active: true }, function (tabs) {
            addurl(tabs[0].url);
        });
    }
    function addurl(link){
        var urltostore = link;
        var gettingItem = browser.storage.local.get(urltostore);
        gettingItem.then((result) => {
            var objTest = Object.keys(result);
            if(objTest.length < 1 && urltostore !== ''){
                storeurl(urltostore);
            }
        }, onError);
    }
}

function storeurl(link){
    var storingurl = browser.storage.local.set({link});
    storingurl.then(() => {
        displayurl(link);
    }, onError);
}

function displayurl(link) {
    var url = document.createElement('div');
    var urlDisplay = document.createElement('div');
    var urlPara = document.createElement('p');
    url.setAttribute('class','url');
    urlPara.textContent = link;
    urlDisplay.appendChild(urlPara);
    url.appendChild(urlDisplay);
    siteContainer.appendChild(url);
}

下面是一个快照,当单击扩展内的按钮时,(图片).You可以看到,我可以使用当前代码获取url。但是我也想在它的url旁边显示页面的图标(favIconUrl显示图标的url,我能从那里得到它吗!?,如果是,怎么做?)有人能帮我做这个吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-28 08:37:53

对于那些需要这方面的代码的人,下面是:

代码语言:javascript
复制
var favicon = document.createElement('img');
// get the url of favicon using favIconUrl function
favicon.src = "https://jsfiddle.net/favicon.ico";
document.body.appendChild(favicon);
// you can also append it to a container if you want to

有关这个,请查看小提琴

要获取图标的url,可以在末尾追加/favicon.ico,也可以从favIconUrl获取它。

票数 0
EN

Stack Overflow用户

发布于 2017-09-22 18:58:00

网站的喜好可以通过以下两种方式之一找到。在<head>部分,您可以找到:

代码语言:javascript
复制
<link rel='shortcut icon' type='image/x-icon' href='/favicon.ico' />

其中href属性指向偏袒图标。如果这是缺失,那么它将永远是/favicon.ico,在网站的根。

票数 1
EN

Stack Overflow用户

发布于 2017-12-27 12:40:38

对于https://icons.better-idea.org/来说,这是一个很好的选择,他们创建了一个解决方案,因为越来越少的偏袒被存储在一个域的根上。

它是免费的,它可以工作(到目前为止,在我的例子中是100%的时间),它是尽可能简单的:

代码语言:javascript
复制
<img src='https://icons.better-idea.org/icon?url=github.com&size=80..120..200' />

如果你不想依赖可以在任何时候停止的免费网络服务(正如他在网站中指出的那样),你可能想要书签github。

鼓掌

编辑2022

开发人员不再保留服务器来承载此服务,您必须自己托管它:

https://github.com/mat/besticon#hosting

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46369862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档