gpt4 book ai didi

javascript - Chrome 扩展程序 : Replacing Favicons

转载 作者:行者123 更新时间:2023-12-03 01:26:23 26 4
gpt4 key购买 nike

在我的 Chrome 扩展程序中,我试图查找网站的图标,然后将其替换为不同的图标。我能够找到该网站的图标网址,但我不知道如何实际替换它。

我尝试使用 chrome.tabs.query 并使用它的 favIconUrl 属性,但我无法让它工作,所以我然后使用了一种获取访问 https://www.google.com/s2/favicons?domain=exampledomain.com 来查看网站的图标。这确实获取了该图标的 url,但我对如何继续替换该图标感到困惑。

编辑:包含更多代码

背景.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) {});

})
}
};

内容.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);
}
})

最佳答案

您需要使用消息传递将 url 从 background.js 传递到 contentscript.js背景.js

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

在内容脚本上,您需要替换 url,例如

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);
}
});

关于javascript - Chrome 扩展程序 : Replacing Favicons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51525082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com