Chrome扩展Manifest V3中调用chrome.action.setIcon()报TypeError错误的问题求助
Chrome扩展Manifest V3中调用chrome.action.setIcon()报TypeError错误的问题求助
大家好,我现在在开发一款Chrome扩展,想要实现点击扩展图标时切换图标的功能,采用的是Manifest V3版本,使用的方法是chrome.action.setIcon()。
我的manifest.json里已经正确配置了action属性,默认图标都能正常显示:
"action": { "default_icon": { "16": "/images/ext/icon16.png", "32": "/images/ext/icon32.png", "48": "/images/ext/icon48.png", "128": "/images/ext/icon128.png" } }
我在服务工作者文件background.js里写了切换图标的函数:
function FUNCTION-WITH-ICON-TOGGLING(){ chrome.action.setIcon({ path: { '16': '/images/on/icon16.png', '32': '/images/on/icon32.png', '48': '/images/on/icon48.png', '128': '/images/on/icon128.png' } }); }
然后在扩展图标点击的监听函数里,我尝试通过注入脚本的方式调用这个切换函数:
chrome.action.onClicked.addListener((tab) => { chrome.scripting.executeScript({ target: { tabId: tab.id }, function: FUNCTION-WITH-ICON-TOGGLING }); });
结果运行后出现了这个错误:
Error handling response: TypeError: Cannot read properties of undefined (reading 'setIcon')
我试过修改语法,比如改成和默认图标一样的格式,甚至只用单个图标的路径:
chrome.action.setIcon({ path: "/images/on/icon16.png" });
但还是报同样的错误。我已经搜了很多资料,都没找到有人遇到这个问题,希望有人能给我指个方向,非常感谢!
备注:内容来源于stack exchange,提问作者Andrew Khassapov
相关产品推荐
相关产品推荐

