Chrome扩展报错:chrome.tabs.executeScript不是函数的技术问询
解决Chrome扩展Manifest V3中chrome.tabs.executeScript不存在的错误
你遇到的错误本质是Manifest V3已经移除了chrome.tabs.executeScript API,这个接口在V3里被迁移到了chrome.scripting.executeScript下,直接调用旧API就会报函数不存在的错。
你的扩展已经在permissions里声明了scripting权限,不需要额外配置,只需要修改代码即可:
修改后的代码
chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) { let tab = tabs[0]; chrome.scripting.executeScript({ target: { tabId: tab.id }, code: ` const buttons = document.querySelectorAll('.tab-title'); if (buttons.length >= 2) buttons[1].click(); ` }); });
关键变化说明
- API从
chrome.tabs.executeScript改为chrome.scripting.executeScript - 原有的tabId不再作为第一个参数,而是放到
target.tabId字段中 - 执行的代码仍然通过
code字段传递,和V2写法一致
如果需要执行外部脚本文件,还可以用files字段替代code,比如:
chrome.scripting.executeScript({ target: { tabId: tab.id }, files: ['content-script.js'] });
内容的提问来源于stack exchange,提问作者Dark Montaqe
相关产品推荐
相关产品推荐

