我正在尝试列出Chrome扩展程序中的其他扩展程序,并显示其图标。
另一个扩展(Zenmate VPN)可以轻松显示其他图标。我发现它的清单中有management
个权限。
"management"
添加到optional_permissions
,并要求用户在点击后启用它。当我将management
添加到permissions
部分时,一切正常。问题是我们不想在那里添加此权限,因为如果更新版本要求更多的访问权限,Chrome会默认禁用该扩展程序。
有没有办法以某种方式刷新页面中的权限,以使图标URL工作(chrome://extension-icon/*
),就像它们在ZenMate中工作一样?
答案 0 :(得分:2)
如果您已获得chrome://favicon
权限,则可以使用它来显示扩展名图标
<img src="chrome://favicon/chrome-extension://igiofjhpmpihnifddepnpngfjhkfenbp/">
如果您最初没有chrome://favicon
权限,请尝试在optional_permissions
中添加。如果它无法正常工作,请尝试添加到permissions
,但首先测试它是否会在更新时停用您的扩展程序。
可以指定其他图标尺寸(如果没有实际的大图标,则会缩放默认的16x16px):
chrome://favicon/size/16@2x/chrome-extension://.......
chrome://favicon/size/48/chrome-extension://.......
答案 1 :(得分:0)
我检查了是否可以使用wOxxOm的答案,并且大多数扩展程序没有更大的favicon,也不能请求chrome://favicon/*
权限:Chrome会抛出一个例外:
运行permissions.request时未经检查的runtime.lastError:&#39; chrome:// favicon / *&#39;不是公认的许可。
所以我找到了一个简单而强大的解决方案:我只需关闭当前选项卡并创建一个新选项卡:
permissionsAchieved = function(allowed) {
chrome.tabs.create({ url: "<write current url here>" });
window.close();
},
完成。在新打开的选项卡中,图标显示正确。
但感谢您的建议!