簡體   English   中英

Chrome擴展程序:更換網站圖標

[英]Chrome Extension: Replacing Favicons

在我的chrome擴展程序中,我嘗試查找站點的圖標,然后將其替換為其他圖標。 我可以找到該網站的收藏夾網址,但是我仍在堅持如何實際替換它。

我嘗試使用chrome.tabs.query並使用了favIconUrl的屬性,但無法正常工作,因此我使用一種通過訪問https://www.google.com/s2/favicons?domain=exampledomain.com來獲取網站圖標的方法。 https://www.google.com/s2/favicons?domain=exampledomain.com 這確實獲得了favicon的url,但是我對如何繼續替換favicon感到困惑。

編輯:包括更多代碼

background.js

chrome.commands.onCommand.addListener(colorTabs);

function colorTabs(command)
{
    var url = "https://www.google.com/s2/favicons?domain=";
    var addFaviconUrl;

    if ("left-key-toggle-feature" == command)
    {
        chrome.tabs.query({currentWindow: true, active: true}, function(tabs)
        {
            /* favicon url */
            addFaviconUrl = tabs[0].url;
            url += addFaviconUrl;


            chrome.tabs.sendMessage(tabs[0].id, {url: url}, function(response) {});

        })
    }
};

content.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse)
{
    if (request.url)
    {
        var link = document.querySelector("link[rel*='shortcut icon']") || document.createElement("link");
        link.type = "image/x-icon";
        link.rel = "shortcut icon";
        link.href = chrome.runtime.getURL("img/red-circle-16.png");   // not working
        //link.href = "https://www.google.com/s2/favicons?domain=google.com";  // works!
        document.getElementsByTagName("head").appendChild(link);
    }
})

您需要使用像background.js這樣的消息傳遞將URL從background.js傳遞到contentscript.js

chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
    chrome.tabs.sendMessage(tabs[0].id, {url: url}, function(response) {});  
});

在內容腳本上,您需要替換網址,例如

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.url)
      {
       var link = document.querySelector("link[rel*='icon']") || document.createElement('link');
    link.type = 'image/x-icon';
    link.rel = 'shortcut icon';
    link.href = url;
    document.getElementsByTagName('head')[0].appendChild(link);
    }
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM